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'