[python] Lze explicitně volat předka?
Jaroslav Pachola
j_p na centrum.cz
Středa Únor 8 00:25:23 CET 2006
No to je proste, mily Watsone. Vyplyva to podle me z dynamicke povahy
jazyka Python. V dobe, kdy vytvaris instanci tridy B, neexistuje nikde
zadne jmeno MujModul. To, ze si nejaky blok kodu nazves pro sebe jako
modul, jeste neznamena, ze to skutecne modul je a ze se tak chova. Tvuj
"import" si na import jenom tak hraje. Doporucuju se vratit k
imp.LoadModule() a hledat jinou cestu ke kyzenemu vysledku (nemel by
podle me byt ani takovy problem nasimulovat "from x import y").
JP
Vaclav Vais wrote:
> Ahoj,
>
> potřebuji zavolat explicitně __init__ od předka při dědění. Jako
> podrobný popis uvádím příklad, který mi nefunguje, proč?
>
> Poraďte mi prosím.
>
> # zdroj1 a zdroj2 jsou z databaze
>
> zdroj1="""
> class Modul:
> def __init__(self):
> self.instance=self
>
> def getInstance(self):
> return self.instance
> """
>
> zdroj2="""
> MujModul=get(zdroj1)
> class B(MujModul):
> def __init__(self):
> print dir(self) # Dukaz, ze jsem zdedil, metoda getInstance je
> pristupna
> MujModul.__init__(self) # Jak explicitne volat predka ?
> """
>
> def get(kod):
> comp=compile(kod,'Modul_x','exec')
> exec comp
> return eval(dir()[0])
>
>
> definiceB=get(zdroj2)
>
> b=definiceB()
>
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python
>
>
>
Další informace o konferenci Python