[python] Konstruktor tridy, dedicnost
David Michal
dmichal na altien.com
Úterý Srpen 19 15:10:26 CEST 2008
JJ presne tak, provedl se pouze __init__() tridy Child. Jestli lze nejak
vyvolat konstruktory vsech trid to nevim, ale urite to nejak jde.
Ale ja bych v podobnem pripade upravil Child takto:
class Child(Base):
def __init__(self):
Base.__init__(self)
Self.x = 1
David
> -----Original Message-----
> From: python-bounces na py.cz [mailto:python-bounces na py.cz] On Behalf Of
> jvotroubek
> Sent: Tuesday, August 19, 2008 2:03 PM
> To: python na py.cz
> Subject: [python] Konstruktor tridy, dedicnost
>
> Ahoj.
>
> Chtel jsem se zeptat...
>
> class Base:
> def __init__(self):
> self.y = 2
> #enddef
> #endclass
>
> class Child(Base):
> def __init__(self):
> self.x = 1
> #enddef
> #endclass
>
> c = Child()
> print c.x, c.y
>
> ... a kod vyhodi AttributeError.
> Chapu-li to spravne, tak konstruktor tridy Child zastinil konstruktor
> tridy Base. Znamena to, ze se vzdycky vyvola nejvrchnejsi konstruktor?
> Jde nejak vyvolat konstruktory vsech trid, pres ktere se dedi?
>
> Diky, Honza
Další informace o konferenci Python