2013-03-27 76 views

回答

15

不,差異不是性能問題。在這兩種情況下,必須解析整個模塊,並執行任何模塊級別的代碼。唯一的區別是在名稱空間中:首先,導入模塊中的所有名稱將成爲當前模塊中的名稱;在第二個中,只有當前模塊中定義了軟件包名稱。

也就是說,很少有很好的理由使用from foo import *。導入模塊,或從中導入特定名稱。

+0

是啊,謝謝你的回答。我認爲當包名稱可能被改變時,還有一些原因使用「從包導入*」。或者有另外一個具有相同功能的包裝會替換原來的包裝會導致需求變更。 – Zuckonit 2013-03-27 09:41:19

+1

實際使用'package'時,所有屬性查找'package.foo'可能會累積性能差異。不過,如果這是一個問題,導入特定名稱或緩存在本地查找名稱。 – 2013-03-27 09:55:46

+4

當程序包更改名稱時,您可以'將newname作爲舊名稱'導入。如果經常有切換軟件包的危險,請立即將「import package as interfacename」。 – 2013-03-27 09:57:25

相關問題