[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