文件结构:
./__init__.py
a.py
/lib
__init__.py
Foo1.py # contains `class Foo1`
Foo2.py # contains `class Foo2`
# so on ...
在{
from lib.Foo1 import Foo1
from lib.Foo2 import Foo2
但是,当我在{
错误:<type 'exceptions.TypeError'>: 'module' object is not callable
我错过了什么
这里是a.py
#!/usr/bin/python
import cgi, cgitb
cgitb.enable()
from lib import *
print "Content-Type: text/html"
print ""
print "Test!"
foo1 = Foo1()
foo2 = Foo2()
使用这些参考文献:
http://docs.python.org/2/tutorial/modules.html#importing-from-a-package
How to load all modules in a folder?
从包导入
*
时(如您的情况,使用init.py
中的__all__
)__all__
指定应加载并导入到当前命名空间中的所有模块因此,在您的情况下,
from lib import *
将导入模块Foo1
和Foo2
,您需要像这样访问类:请看一下Importing ^{} in Python 以获得快速澄清
将以下内容添加到
.../lib/__init__.py
文件中:请注意,PEP-8建议package and modules names be all lowercase避免混淆
将
lib
中的所有内容导入当前模块,因此我们的globals()
如下所示:鉴于
使我们的
globals()
成为所以在第一种情况下,我们只是导入模块,而不是其中的类,这正是我们想要的
相关问题 更多 >
编程相关推荐