[python] class a subclass
Roman Miklos
RMiklos na pss.sk
Pátek Listopad 10 18:00:32 CET 2006
>Proc by mel Python hledat
>nejprve metodu v potomku, kdyz ji volam z rodice ?
ale ty vytvoris instanciu potomka a volas teda metodu potomka takto
x=b()
x.ma()
mtip <mtip na atlas.cz>
Sent by: python-bounces na py.cz
10.11.2006 17:24
Please respond to
Konference PyCZ <python na py.cz>
To
Konference PyCZ <python na py.cz>
cc
Subject
Re: [python] class a subclass
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 na py.cz
http://www.py.cz/mailman/listinfo/python
Mgr. Ing. Roman MIKLÓŠ
Prvá stavebná sporiteľňa a.s.
Bajkalská 30, P. O. Box 48
829 48 Bratislava 25
Tel.: +421/ 2 / 582 31 174
Fax: +421/ 2 / 582 31 109
Další informace o konferenci Python