我在一个目录中有2个文件:loader.py & mod1.py. Loader.py动态地在mod1.py中创建一个类并在其上调用一个方法。这里是mod1.py加载模块在运行时工作除织物外
class MyClass1:
def run(self):
print "Class1 running"
这里是装载机:
def run():
mod = __import__('mod1')
cls = getattr(mod, 'MyClass1')
inst = cls()
inst.run()
run()
如果我跑这只是简单的Python: “巨蟒loader.py” 我看到:
Class1 running
这是什么你的期望。如果我然后运行它布下的“FAB -f loader.py运行”我看到
Class1 running
Class1 running
Done.
这是有道理的,run()是由面料和loader.py当它是由面料加载调用。
但是,如果我删除显式调用在loader.py运行,因此它的下一次仅面料叫,我得到
ImportError: No module named mod1
为什么布下运行有所作为?有没有办法使这项工作在织物之下?
是否有助于将__init__.py文件添加到目录中? –
仅仅存在__init__.py文件没有任何区别。 –
答案最终有所帮助吗?谢谢。 – alecxe