[python] class a subclass
Roman Miklos
RMiklos na pss.sk
Sobota Listopad 11 10:39:17 CET 2006
Musim sa pridat k supermanovi, ze ten priklad tata-synek je super. Aj som
si ho odlozil :-)
"Petr Přikryl" <prikryl na atlas.cz>
Sent by: python-bounces na py.cz
10.11.2006 23:50
Please respond to
Konference PyCZ <python na py.cz>
To
python na py.cz
cc
Subject
Re: [python] class a subclass
mtip napsal(a):
> RM> Problem je asi niekde v tom, ze v potomku v metode ma() odovzdavas
> RM> self t.j. referenciu na instanciu triedy b (potomka)
> RM> super(b,self).ma()
>
> RM> Neviem naco by sa v tej funkcii super() mala davat referencia na
potomka,
> RM> ked to ma ist do rodica.
> RM> Ja som to skusal aj inac ale nejde mi to. Predtym som super() nikdy
> RM> nepouzil. Podla mna tam niekde je problem.
>
>
> To je presne ono. Ja to taky tak chapu, jenze lze ziskat neco jako
> instanci rodice ? To asi ne, podle me vsechno bezi na jedne instanci a
> to self potomka.
> Navic sem to zkusil tak, ze misto self tam vytvorim novou instanci
> rodice a poslu a uz to funguje, jak ma. Jenze ta nova instance pred
> kazdym volanim predka nelze v praxi pouzit.
Možná je chyba v tom mentálním obraze rodič-potomek.
Instance odvozené třídy je instance potomka. Žádná
související instance rodičovské třídy neexistuje.
Potomek se chová "úplně jako tata", jenom některé
věci dělá trošku jinak. Prober si tohle
class tata(object):
def huli(self):
return 'smoke'
def chlasta(self):
return 'glgy glgy'
def nadava(self):
return 'do prdele'
def vlastnosti(self):
return '%s, %s, %s' % (self.huli(), self.chlasta(),
self.nadava())
def __str__(self):
return self.vlastnosti()
class synek(tata):
def chlasta(self):
return 'lok lok'
def nemysli(self):
return 'to sem magor'
def vlastnosti(self):
# jako tata, trochu jinak, ale navic nemysli
return tata.vlastnosti(self) + ', ' + self.nemysli()
fotr = tata()
print fotr
syn = synek()
print syn
Vypíše to:
smoke, glgy glgy, do prdele
smoke, lok lok, do prdele, to sem magor
pepr
_______________________________________________
Python mailing list
Python na py.cz
http://www.py.cz/mailman/listinfo/python
Mgr. Ing. Roman MIKLÓŠ
Prvá stavebná sporiteľňa a.s.
, P. O. Box 48
Tel.:
Fax:
Další informace o konferenci Python