私は文字列を持っています、例えば:abc.def.ghi.jkl.myfile.mymethod
。動的にインポートするにはどうすればよいmymethod
ですか?
これが私がそれについて行った方法です:
def get_method_from_file(full_path):
if len(full_path) == 1:
return map(__import__,[full_path[0]])[0]
return getattr(get_method_from_file(full_path[:-1]),full_path[-1])
if __name__=='__main__':
print get_method_from_file('abc.def.ghi.jkl.myfile.mymethod'.split('.'))
個別のモジュールをインポートする必要があるのではないかと思います。
編集:私はPythonバージョン2.6.5を使用しています。
importlib.import_module()
オーバー__import__()
:docs.python.org/2/library/functions.html#__import__を- 2.7以降のために。