-1
我與定義一個全局變量包由包中的所有模塊使用掙扎更新Python中的全局包變量。 我有這樣的代碼:我如何在運行時
# my_module.py
from .__main__ import GLOBAL_VAR
def print_global():
print(GLOBAL_VAR)
# __main__.py
from my_package import my_module
GLOBAL_VAR = ''
def main():
global GLOBAL_VAR
GLOBAL_VAR = 'myvalue'
my_module.print_global()
if __name__ == '__main__':
main()
我希望my_module.print_global()
打印myvalue
,而是它打印一個空字符串(初始值)。 我也試過在main()
導入模塊後GLOBAL_VAR
的聲明,但是它並沒有幫助。
您能否告訴我如何從main()
重新定義GOBAL_VAR
並使其可用於包裝中的所有子模塊?我還會接受任何其他選項,而不是使用global
關鍵字。
編輯:建議的類似的問題只是部分地回答了這一個。關於redefinig globals沒有任何關係。
爲什麼你會需要一個爛攤子?爲什麼不只是'GLOBAL_VAR ='myvalue'? –
@AzatIbrakov我想要一個變量可用於包中的所有模塊和我不想將其傳遞到所有的功能/對象作爲一個額外的參數。有什麼建議麼? – makeiteasy
你的變量來自哪裏?從環境/文件/互聯網/數據庫?你需要閱讀一次嗎? –