2013-03-08 66 views
1

我想在一個文件中導入所有外部模塊,然後從該文件導入。這樣,如果/當我想換出一個外部模塊,我可以簡單地編輯一個文件。將所有外部模塊導入到一個文件中?

實例目錄:

# django project 
... 
app1 
    imports.py 
app2 
    utils.py 
app3 
    utils.py 

所以在app1.imports.py我

from app2 import utils as ALIAS 

然後,所有我在APP1模塊將從app1.imports.py導入別名。這種方式,如果/當我想使用app3.utils我可以簡單地在app1.imports.py中做一個更改

問題是我不知道/理解Python是否足以知道這是一個好主意。這樣做有什麼優點和缺點?我沒有看到人們這樣做,所以我猜這不是一個好主意?爲什麼?

回答

0

從Python文檔http://docs.python.org/2/tutorial/modules.html#more-on-modules

模塊可以導入其它模塊。 ...導入的模塊名稱位於導入模塊的全局符號表的 中。

完全有可能導入所有可能的模塊中的命名空間到單個模塊中的別名(ALIAS_1,ALIAS_2,...),然後再導入後者模塊的名稱空間需要時。

讓我們舉個例子:

x.py # Contains nothing 

y.py # Contains a single line which imports x as ALIAS 
    import x as ALIAS 

# Inside an interpreter session 
>>> import x, y 
>>> dir(x) 
['__builtins__', '__doc__', '__file__', '__name__', '__package__'] 
>>> dir(y) 
['ALIAS', '__builtins__', '__doc__', '__file__', '__name__', '__package__'] 
>>> dir(x) == dir(y.ALIAS) 
True 

只要你不合並導入模塊的命名空間到導入模塊的命名空間,我看不出有任何的副作用。

相關問題