我遇到的麻煩我的蟒蛇類蟒蛇控制檯內工作的地點。我想自動將所有類導入到全局名稱空間中,以便我可以在不使用任何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