2016-08-21 74 views
0

我有一個腳本'xyz.py',作爲另一個腳本(Main.py)的模塊導入。 xyz.py中的所有內容均位於我在Main.py中調用的類中。 xyz.py和Main.py都共享相同的導入語句:「xml.etree.ElementTree」; 「Tkinter的」; 「CV2」; 「tkFileDialog」; 「tkfd」; 「從PIL導入圖像」; 「ImageTk」; 「os」爲什麼腳本作爲模塊運行得更快?

我注意到,當我在Main.py中運行具有xyz.py所有方法和語句的類時,它們作爲模塊比主腳本運行得更快。 這個觀察背後有一個普遍的事實,我可以用它來加速其他的東西嗎?謝謝。

PS:我沒有提供代碼,因爲它總計大於400行,而且我不知道我應該看到的是什麼,所以我無法採取一個小的相關樣本。

回答

0

當一個python程序運行時,主腳本總是通過解釋器傳遞。然而,當一個模塊被導入時,python會檢查它的緩存(名爲__pycache__的子目錄),它存儲之前已經被編譯爲字節碼的模塊。如果緩存副本的日期與源代碼日期的日期相匹配,則它使用緩存版本。這可能是你所看到的。

相關問題