http://docs.python.org/2/library/runpy.html#runpy.run_module「新鮮模塊命名空間」是什麼意思w.r.t. runpy?
我的問題是關於這部分的run_module文檔。
...然後在新的模塊名稱空間中執行。
什麼是python中的「module namespace」? runpy與進口有什麼不同?
http://docs.python.org/2/library/runpy.html#runpy.run_module「新鮮模塊命名空間」是什麼意思w.r.t. runpy?
我的問題是關於這部分的run_module文檔。
...然後在新的模塊名稱空間中執行。
什麼是python中的「module namespace」? runpy與進口有什麼不同?
每個模塊都使用自己的一組全局變量執行,這些全局變量將成爲模塊的屬性。模塊名稱空間是模塊的全局變量的地方; 「在新的模塊名稱空間中執行」意味着「使用其自己的全局變量環境執行」。
Python解釋器只在第一次導入任何給定程序時執行模塊代碼。進一步的導入語句只是返回現有的模塊對象。這可以防止進口指數爆炸時模塊a
和b
兩個進口模塊c
和d
,這既進口e
和f
,等這也意味着,所有模塊看到的,比方說,collections.defaultdict
版本相同的,所以類型檢查的行爲直觀。 runpy.run_module
表示「在這個模塊中運行代碼,不管它是否已經被導入,也不會將其視爲導入。」如果你是run_module
模塊,然後__import__
它,你從run_module
得到的字典將包含與你從__import__
獲得的模塊中的對象非常相似但不同的對象。