0
可以說我有以下的配置文件:Python的動態導入和改變一個變量
config.py:
x = 2
y = x * 2
我想文件main.py在導入此 ,最好使用load_source命令,但我也希望能夠在導入時更改x的值,以便x中的更改傳播到config.py中的其他變量。例如,我想下面的代碼,打印6,而不是4
main.py:
import imp
config = imp.load_source('', 'config.py')
config.x = 3
print config.y
什麼是做到這一點的最好方法是什麼?我知道我可以編寫config.py中的函數來爲我做這件事,但我更喜歡配置只是簡單的變量定義。
爲什麼不直接導入配置和操作變量這樣。無論哪種方式,他們是全球性的 –
即使你導入它,當你改變x時y的值不會改變,因爲它定義在x之後,並且x的改變不會改變y,除非它被定義爲一個列表或者其他東西 – Amin
這不是那麼有效。當你說y = x * 2不是指針時,Python使用動態轉換。即使在腳本中,如果您打印(y),則定義y,然後設置x = 1並再次打印(y),y的意義相同。你可以讓y成爲一個函數,或者像布倫特所建議的那樣在config中創建一個類。 –