2012-02-17 90 views
0

我有一個Python中的模塊,它正在逐漸發展。我想將它分隔成更小的文件以更好地管理我的代碼,但我希望它看起來好像沒有任何改變。具體來說,假設我在c.py中有類C1C2。我想創建一個文件夾結構,在Python中將一個文件夾轉換爲一個模塊

c/ 
    __init__.py 
    c1.py <--- class C1 in here 
    c2.py <--- class C2 in here 

,這樣我可以在以下兩種方式

import c 
c1 = c.C1() 
c2 = c.C2() 

from c import * 


c1 = C1() 
c2 = C2() 

我已經有大部分使用的代碼那裏的路;如果我定義__init__.py如下,

from c1 import * 
from c2 import * 
__all__ == [] 

然後我可以做第一的兩種方式使用c。我怎麼可以使用c在第二方式(最好不枚舉所有C1C2__all__

回答

0

跳過__all__聲明__init__.py,你將能夠使用這兩種方法。

+0

這將導致模塊'c1'和'c2'被導入。我怎樣才能使這不會發生? – duckworthd 2012-02-17 03:39:36

+0

它會導致從'''''''*'導入'C1'和'C2',所以你可以使用像'c1 = C1()'這樣的命令。 – 2012-02-17 03:56:32

+0

哦,我明白你的意思了。我想你必須明確地把它們放入'__all__'中。 – 2012-02-17 03:58:01

相關問題