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

EsoRimer EsoRimer na centrum.cz
Středa Listopad 3 08:45:21 CET 2004


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
>>> 



Další informace o konferenci Python