2013-07-25 43 views
1

好了,我有以下問題:保持進口Python模塊 「新鮮」

我有以下幾點: x.py:

from y import aFunc 

y.py:

from z import aDict 

現在,x運行,睡眠,重複計劃。然後它在某些文件上調用一個Func。 aFunc使用aDict中的值然後返回。

aDict位於由econ部門中的用戶管理的python模塊中。我知道導入被調用一次然後被緩存。即使我將import語句放入aFunc中,它仍然只會導入一次然後緩存(如果我錯了,請糾正我)。

但我希望能夠回升至aDict的任何變化對飛,換句話說,我想重新導入z.aDict每次X稱爲y.aFunc

任何意見會非常感謝!

+1

這聽起來像你使用的模塊數據。這聽起來像一個糟糕的主意,特別是如果有人在嘗試導入時更新'z.py'文件。 – user2357112

回答

3

您可以使用重載,但你不能使用

from z import aDict 

你可以這樣做:

reload(z) 
#do something with z.aDict here 
+0

這是真的,謝謝你的建議。你會得到「答案」標記 – mlnyc

+1

爲了讓你的名字保持不變,只需在每次重新加載後執行'aDict = z.aDict'。 – 9000

0

看起來像我找到答案。這是重新加載(aDict),似乎讓事情保持新鮮......但希望這可以幫助其他人!

編輯:哎呀!重新加載只能使用模塊。所以我最終做的是導入整個模塊,然後在我的代碼中加上z.aDict前綴。

reload from python docs

+0

reload()只能將模塊作爲參數 – sedavidw

+0

如果在@ sedavidw的答案下按下了綠色勾選的複選標記,那最好。這將標誌着答案'接受'。 – 9000

+0

是啊我只是等待時間通過,所以我可以接受他的回答... – mlnyc