2012-12-26 28 views

回答

16

您污染名字空間的名稱可能會干擾變量並佔用一些內存。
由於程序必須加載模塊,因此您的啓動時間也會更長。

在任何情況下,我都不會太過神經過敏,因爲如果您正在編寫代碼,您可能會在代碼被修改時不斷寫入並刪除import os。有些IDE作爲PyCharm檢測未使用的導入,因此您可以在代碼完成或接近完成後依賴它們。

+1

因此,與沒有這些不必要的導入相比,程序將需要更多時間。對 ? –

+0

對,這是真的 – joaquin

+0

啓動時間延遲可以通過使用'print'Hello',__name__'創建一堆文件然後導入它們來可視化。導入的所有東西至少要解析一次,並且每個運行週期至少解釋pyc/cache版本一次。這可能會有點失控,特別是如果一個導入的文件導入了其他導入更多文件的文件。 – David

6

「未使用」可能是有點難以界定比你想象的,例如在test.py這個代碼:

import sys 
import unused_stuff 
sys.exit(0) 

unused_stuff似乎是不用的,但如果它是包含:

import __main__ 
def f(x): print "Oh no you don't" 
__main__.sys.exit = f 

然後運行test.py並沒有達到你期望的隨便的目光。

+0

希望沒有人用這樣的代碼編寫庫。即使OP計劃**使用該模塊,該導入也是危險的。 – joaquin

+2

@joaquin真的,這是一個極端的例子,但這並不意味着沒有模塊在加載時會有更微妙的副作用。它的意思是一個副作用:) – Flexo

+3

有兩個模塊,我在我的個人圖書館,其唯一的API是導入,也就是說,你所做的就是導入它們什麼都沒有調用。第一個是nice.py,它以較低的進程優先級運行程序,另一個是timing.py,它安裝了一個atexit處理程序來報告正在運行的程序結束時所用的時間和時間戳。這兩種看起來都沒有用,但事實上,他們只是擁有超簡約的API。 – PaulMcG

相關問題