Zkusil jsem super a vysledek je ten samy. class a(object): def prn(self): print 'a',self def ma(self): self.prn() def aa(self): pass
class b(a): def prn(self): print 'b',self def ma(self): '''prekryje a.ma()''' super(b,self).ma() def ba(self): pass x=b() x.ma() Zjistil jsem, ze to funguje, jen pokud to zavolam takto: class b(a): def prn(self): print 'b',self def ma(self): '''prekryje a.ma()''' a.ma(a()) def ba(self): pass Coz je samozrejme nesmysl, protoze vytvarim novou instanci a. Tak se mi zda, ze tohle je neprijemna chyba. Proc by mel Python hledat nejprve metodu v potomku, kdyz ji volam z rodice ? Mirek. s> Použij slovo super. s> super(a,x).ma() s> Miloslav Ponkrác _______________________________________________ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python