2013-02-01 28 views
-9

如果Python會自動導入整個標準庫,則需要編寫更少的代碼行。爲什麼Python不會自動導入整個標準庫?

爲什麼沒有完成?

+2

爲什麼會多出幾行? – Volatility

+0

@Volatility寫入一些額外行的成本很小,但可以量化。如果用戶805627假定導入整個庫將不會有額外的成本,但這個問題確實有意義 - 儘管我會承認它表明對計算機和編程的普遍理解缺乏瞭解。 – goncalopp

回答

3

標準庫很大。每次解釋程序啓動時都將其完全導入,這將是確保該過程需要時間的好方法,因爲它必須從磁盤讀取所有相關文件。此外,它會使基礎解釋器不必要地消耗大量內存。

讓我們把由@DietrichEpp計算出來的指標--0.5秒,磁盤緩存 - 並將其放到透視圖中。假設這些0.5秒主要是受處理器限制的,這將使得在cgi中使用python的web服務器(但不是fcgi或wsgi)能夠每秒至多服務2頁(不包括所有其他必須完成的任務實際上服務的頁面,外部蟒蛇)

對比與裸露的解釋器,(在我的機器上)需要0.02秒,開始終止。

$ time python -c exit 
real 0m0.019s 
user 0m0.004s 
sys 0m0.012s 
+2

更不用說命名空間污染了。默認情況下,Python定義的全局名稱非常少,但確實有這個... –

+0

@Lattyware。甚至比污染本身*還要糟糕的是,事實是你不知道已經採取了什麼名字。決定一個變量名將涉及知道所有的模塊名稱 – goncalopp

+2

出於好奇,我寫了一個測試:https://gist.github.com/4694889 - 我的電腦需要大約0.5秒導入所有模塊。 –

相關問題