3
作爲一個新手,我開始喜歡幾乎默認情況下導入模塊,因爲我開始編寫某些東西時,只是因爲我調用了其中的某些函數(模塊如random,time,os和sys)。但是,這是否會影響性能?如果我只想在模塊中使用特定的功能,我是否更明確地詢問它,或者我應該不在意?導入模塊 - 多少是多少?
作爲一個新手,我開始喜歡幾乎默認情況下導入模塊,因爲我開始編寫某些東西時,只是因爲我調用了其中的某些函數(模塊如random,time,os和sys)。但是,這是否會影響性能?如果我只想在模塊中使用特定的功能,我是否更明確地詢問它,或者我應該不在意?導入模塊 - 多少是多少?
當你做from module import name
時,Python仍然需要運行module
,所以在性能方面沒有區別。
一般來說,如果你只使用從模塊的一件事,在使用from x import y
是好的,但在其他方面,使用import x
然後x.y
導致衝突的名字的機會較低。
原因是Python不專門處理函數和類。從模塊導入時,您所做的只是從該模塊獲取對象並使用它們。這很有用,因爲它使得模塊(以及類和函數)非常靈活,但它確實意味着Python必須在模塊可以從其導入之前運行整個腳本(當然,模塊編寫者可以通過使用if name == "main":
成語來插入不應在導入時運行的代碼)。
如果我使用「從模塊導入*」怎麼辦? – Kimomaru 2013-02-28 20:39:39
@Kimomaru這通常是一個壞主意,除非模塊是專門爲它設計的。在大多數情況下,它只會污染你的命名空間,並且使代碼更難處理。當然,它仍然會像其他方法一樣加載整個模塊。 – 2013-02-28 20:40:17
有趣。所以,最好儘可能具體,因爲它可以使事情保持有組織。我可以想象導入所有內容,然後意外地創建一個與導入的內容相同的函數 - 會導致問題。 – Kimomaru 2013-02-28 20:43:19