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
[email protected]
http://www.py.cz/mailman/listinfo/python
_______________________________________________
Python mailing list
[email protected]
http://www.py.cz/mailman/listinfo/python