[python] class a subclass
mtip
mtip na atlas.cz
Pátek Listopad 10 17:24:58 CET 2006
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
Další informace o konferenci Python