2015-11-17 22 views
2

我想創建一個具有多個子包的Python包。這些子包中的每一個都包含導入大小相同的特定模塊的文件。如何高效地將相同模塊導入python中的多個子包

因此,作爲一個例子,文件A.py從分包A將導入一個是假想名爲LargeSizedModule模塊和分裝B文件B.py也將導入LargeSizedModule。與來自分包CC.py類似。

有誰知道我怎麼能有效地導入相同的確切模塊跨多個子包?我想減少來自這些重複進口的「加載」時間。

+2

重複導入沒有加載時間;導入本身只發生一次,然後它只是一個查找(在'sys.modules',IIRC中)。是什麼讓你覺得這是一個問題? – jonrsharpe

+0

@jonrsharpe我明白了。我剛開始構建我的軟件包的準系統,並希望防止類似這樣的事情讓我徹底檢查整個軟件包結構,如果它稍後成爲可能的效率問題。我是newb :)謝謝。 對於其他的newbs,這個鏈接可能會對這個主題有很好的理解:https://docs.python.org/2/reference/simple_stmts.html#the-import-statement –

+0

參見http://stackoverflow.com/questions/29504313/python-what-is-cost-of-re-imported-modules – jonrsharpe

回答

5

通過做import LargeSizedModule無處不在你需要它。 Python只會加載一次。

+0

哦,很酷! Python很棒:)謝謝你。 –

+0

@TomW爲了補充說明,唯一一次'Python'會重新導入的東西是,如果你調用'reload(LargeSizedModule)'或者使用你自己的'importlib.import_module()'並給它一個不同的公共名稱。 – Torxed

+0

@Toxxed好的,謝謝。我不知道。 –

相關問題