2012-05-28 37 views
5

在網上閱讀後,我注意到有人承諾Python 2.7會將絕對導入作爲默認值。不過現在看來,這是不是這樣,那我們還是要用如何使absolute_import成爲所有模塊的默認設置

from __future__ import absolute_import 

我不希望我的代碼中使用一些舊的設置,所以我要確保所有的模塊都具有此功能。如何做到這一點,而不必在每個模塊中重複這個聲明?

+0

與其說這是一個模糊計劃的承諾。 「Python 2.5中的新功能」(http://docs.python.org/whatsnew/2.5.html#pep-328-absolute-and-relative-imports)說「可能」。 –

回答

2

from __future__必須先進行導入,並且是模塊特定的。沒有簡單的方法讓所有的模塊都能正常工作,而不需要在所有的模塊中使用該線路。

我相信你可以使用grep(如果沒有,滾動你自己的)來告訴你哪個模塊做的是而不是那裏有那條線。

如果您想要做到這一點,請查看importlib或替換__import__。使用這兩種方法,你可以打開.py文件,插入

from __future__ import absolute_import 

線(如果尚未有),然後做實際進口。但請注意,不要將該行添加到除您自己之外的其他模塊,因爲您無疑會從預期相對導入語義的模塊中獲取錯誤。

相關問題