我有3個文件。一個用於定義變量,另外兩個包含所需的模塊。Python從導入的文件中提取變量
variable.py
my_var = ""
test.py
import variable
def trial():
variable.my_var = "Hello"
main.py(不工作)
from variable import *
from test import trial
if __name__ == "__main__":
trial()
print my_var
當我運行main.py
,它什麼都不給。但是,如果我改變main.py
這樣,
main.py(工作)
import variable
from test import trial
if __name__ == "__main__":
trial()
print variable.my_var
,它給了我預期的輸出,即Hello
。
對我而言,variable.py
包含更多變量,我不想在訪問它們時使用variable.<variable name>
。在修改它們時,使用variable.<variable name>
並不是問題,因爲根據用戶的輸入我只能修改一次,然後在多個文件中多次訪問它們。
現在我的問題是,有沒有辦法將main.py
中的所有變量在被test.py
修改之後提取出來並使用它們而沒有前綴variable.
?
如果從可變進口*'你是從模塊添加名字''做對variable'地方名稱空間,因此它們在導入時指向變量的值。如果現在您更改了原始模塊,則該更改將不會反映在導入的符號中。 – dhke
@dhke是的,我從這兩個變體的工作理解。但我的問題有些不同。 – RatDon
[相關問題](http://stackoverflow.com/questions/4758562/modifying-a-variable-in-a-module-imported-using-from-import)。 [好回答](http://stackoverflow.com/a/4764225/6525140)。 – mhoff