如果 「變量」 你指的是一個可變的值,你在做什麼要求將會工作。
FILEB:
my_variable = ["a list with a string in it"]
的fileA:
from fileB import my_variable # import the value
my_variable.append("and another string")
fileA
後已經加載fileB.my_variable
將在這兩個值。
但是,這隻適用於可變值。如果該變量是不可變的,fileA
中的代碼無法對其進行更改,因此您將遇到問題。沒有辦法直接解決這個問題,但有很多方法可以解決這個問題,並且仍然能夠滿足您的需求。
最簡單的就是使用import fileB
而不是from fileB import my_variable
。這可以讓你在fileB
的命名空間中使用類似fileB.whatever
這樣的名稱。您可以重新綁定命名空間中的東西到你的心臟的內容:
FILEB:
my_variable = 1 # something immutable this time
的fileA:
import fileB
fileB.my_variable = 2 # change the value in fileB's namespace
這可能是最簡單的方法。
另一種解決方案是將不可變變量放入可變容器中,然後修改容器而不是變量。例如,如果字符串"a list with a string in it"
是我們希望改變第一個示例的值,那麼我們可以簡單地爲my_variable[0]
(而不是附加)指定一個新值。
執行此操作的常用方法是將值放入字典,列表或甚至放入類(或其中一個可變實例)中。然後你可以導入容器對象並改變它來改變你關心的值。
爲什麼你需要這個? –
@PeterWood所以基本上...我有一個文件,我正在使用的球員統計(fileB),其中有一個變量,跟蹤球員的水平。我想讓我使用raw_input來更改該變量來調試程序並在需要時更改級別,以便在編輯它們之後檢查各個級別。 – Cether
這聽起來像一個配置文件?在FileA中導入FileB,然後創建一個名爲modifyParam(fileB.player.level)的函數,FileB player.level = 5 – spicyramen