Jak skompilować ciąg kodu Pythona do modułu, którego funkcje można wywołać?
W Pythonie mam ciąg jakiegoś kodu źródłowego Pythona zawierający funkcje takie jak:
mySrc = '''
def foo():
print("foo")
def bar():
print("bar")
'''
Chciałbym skompilować ten ciąg na coś w rodzajuobiekt podobny do modułu więc mogę wywołać funkcje zawarte w kodzie.
Oto pseudo-kod tego, co chciałbym zrobić:
myMod = myCompile(mySrc)
myMod.foo()
Czy to możliwe w Pythonie? Próbowałem tego, ale to nie działa:
myMod = compile(mySrc, '', 'exec')
myMod.foo()
Daje to następujący komunikat o błędzie:
<code object <module> at 0x104154730, file "", line 1>Traceback (most recent call last):
File "myfile.py", line XX, in run
myMod.foo()
AttributeError: 'code' object has no attribute 'foo'