[python] class a subclass
superman
feed na centrum.cz
Pátek Listopad 10 18:30:31 CET 2006
> rodicovske ma() uvnitr vola self.prn() a to se vrati k potomkovi,
> protoze existuje stejna metoda b.ma() a to je podle me chyba !
> tady by mel rodic volat svoje ma().
Ne, tohle chyba není, to je prostě normální způsob chování objektů. Na
to narazíš v každém jazyce. Pokud chceš zajistit, aby rodič volal svoje
ma(), musíš zajistit, aby jméno ma nekolidovalo s něčím jiným v
potomkovi. Ve většině jazyků se to zajišťuje buď tak, že se použije
viditelnost (private, protected, public), nebo se použije nevirtuální
metoda, nebo se prostě zakáže překrýt tato metoda potomkem (final). V
Pythonu se to řeší torchu nalepovákem, a to tak, že metoda začne dvěma
podtržítky. Ale funguje to tak jak má.
Miloslav Ponkrác
Další informace o konferenci Python