我有这个文件结构(点是我的工作目录):
.
+-- testpack
+-- __init__.py
+-- testmod.py
如果我用语句加载testmod
模块import
,我可以调用一个在其中声明的函数:
>>> import testpack.testmod
>>> testpack.testmod.testfun()
hello
但是如果我尝试使用该__import__()
功能做同样的事情,它就不起作用:
>>> __import__("testpack.testmod").testfun()
Traceback (most recent call last):
File "<pyshell#7>", line 1, in <module>
__import__("testpack.testmod").testfun()
AttributeError: 'module' object has no attribute 'testfun'
实际上,它返回的是包testpack
而不是模块testmod
:
>>> __import__("testpack.testmod").testmod.testfun()
hello
怎么会?