[python] Konstruktor tridy, dedicnost
Jan Janech
devel na atlas.sk
Úterý Srpen 19 15:13:54 CEST 2008
Musite volat aj konstruktor predka. Robi sa to bud:
class Child(Base):
def __init__(self):
Base.__init__(self)
self.x = 1
alebo:
class Child(Base):
def __init__(self):
super(Child, self).__init__()
self.x = 1
jvotroubek wrote:
> 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
--
____________________________
Ing. Jan Janech
Katedra softverovych technologii
Fakulta riadenia a informatiky
Zilinska Univerzita
Další informace o konferenci Python