[python] Třídy , dědičnost a import ...

ViNiL vinil na zagamma.cz
Středa Listopad 3 08:56:35 CET 2004


Dne st 3. listopadu 2004 08:45 EsoRimer napsal(a):
> On Tue, 2 Nov 2004 19:35:18 +0100
>
> ViNiL <vinil na zagamma.cz> wrote:
> > Dne út 2. listopadu 2004 16:57 Petr Bílek napsal(a):
> > > On Tue, 2 Nov 2004 16:44:47 +0100
> > >
> > > Jaroslav Pachola <j_p_misc na centrum.cz> wrote:
> > > > Ahoj,
> > > >
> > > > > Ahoj,
> > > > > měl bych dotaz.
> > > > > Chtěl bych napsat do jednoho souboru definici nějaké třídy A.
> > > > > Do jiného souboru definici třídy B, která je potomkem A.
> > > > > Do dalšího souboru def. t. C, která je potomkem tř. A.
> > > > > A pak v jiném souboru používat  třidy B i C. Jde to udělat a jak?
> > > > > EsoRimer
> > > >
> > > > v cem konkretne vidis problem? Vicenasobna dedicnost se dela takto:
> > > >
> > > > class D(B, C):
> > > > ...
> > >
> > > No v těch souborech. Jak to udělat, abych moch mít definici každé třídy
> > > v jiném souboru a fungovalo to.
> > > Dejme tomu, mam
> > > #-- soubor ta.py:
> > > class a:
> > >  def echo(self):
> > >   print 'a'
> > >
> > >
> > > #-- soubor tb.py:
> > > class b(a):
> > >  def echo(self):
> > >   print 'b'
> > >
> > >
> > > #-- soubor tc.py:
> > > class c(a):
> > >  def echo(self):
> > >   print 'c'
> > >
> > > #--- soubor aplikace.py:
> > >
> > > ???????? Co napsat do souboru alikace.py, abych tam mohl pouzivat tridy
> > > a,b,c??
> >
> > from ta import a
> > from tb import b
> > from tc import c
>
> No to právě nejde:
> >>> from ta import a
> >>> from tb import b
>
> Traceback (most recent call last):
>   File "<stdin>", line 1, in ?
>   File "tb.py", line 1, in ?
>     class b(a):
> NameError: name 'a' is not defined

He -- protoze si se ptal, co napsat do aplikace.py :-)

do tb.py patri jeste: from ta import a
a do tc.py: from tb import b

zkratka potrebujes vzdy do aktualniho namespace dostat to, co chces pouzit...

-- 

Vladimír Linek <vinil na zagamma.cz>
Zagamma Labs



Další informace o konferenci Python