Как скомпилировать строку кода Python в модуль, функции которого можно вызывать?
В Python у меня есть строка исходного кода Python, содержащая такие функции, как:
mySrc = '''
def foo():
print("foo")
def bar():
print("bar")
'''
Я хотел бы скомпилировать эту строку в какой-томодульный объект поэтому я могу вызывать функции, содержащиеся в коде.
Вот псевдокод для того, что я хотел бы сделать:
myMod = myCompile(mySrc)
myMod.foo()
Возможно ли это в Python? Я пробовал это, но это не работает:
myMod = compile(mySrc, '', 'exec')
myMod.foo()
Это выдает сообщение об ошибке, подобное этому:
<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'