我遇到的麻烦我的蟒蛇类蟒蛇控制台内工作的地点。我想自动将所有类导入到全局名称空间中,以便我可以在不使用任何prefix.module.names的情况下使用它们。Python的 - 导入包中的类到控制台全局命名空间
这里就是我这么远......
projectname/
|-__init__.py
|
|-main_stuff/
|-__init__.py
|-main1.py
|-main2.py
|
|-other_stuff/
|-__init__.py
|-other1.py
|-other2.py
每个文件定义了一类相同的名称,例如中main1.py将定义一个名为Main1的类。
我的PYTHONPATH
是projectname /的绝对路径。
我有包含此蟒启动文件:
from projectname import *
但是,这并不让我用我的课都没有。在启动python控制台时,我希望能够写出:
ob=Main1()
但Main1不在当前名称空间内,所以它不起作用。
我尝试添加的东西到__init__.py
文件...
在projectname/__init__.py
:
import main_stuff
在projectname/main_stuff/__init__.py
:
import other_stuff
__all__ = ["main1", "main2", "main3"]
等。而在我的启动文件我补充:
from projectname.main_stuff import *
from projectname.main_stuff/other_stuff import *
但使用类蟒蛇控制台我仍然有中写:
ob=main1.Main1()
我不希望需要的main1.
部分。有谁知道在使用python控制台时如何自动将我的类放入全局命名空间中?
谢谢。
==== ====编辑
我需要的是在类级别导入包,但from package import *
让我在模块级的一切。我做这样的事情的一个简单的方法之后我:
for module in package do:
from package.module import *
==== ANOTHER编辑====
我结束了添加类进口到我的蟒蛇启动文件独立。这是不理想的,因为维护它的开销,但它做我想要的。
from class1.py import Class1
from class2.py import Class2
from class3.py import Class3
+1“倒一桶名” – 2013-03-27 18:31:41