2016-08-03 150 views
1

我試圖在功能edl_flashing全局變量edl_loading的值更改爲True,不知它不工作?任何人都可以幫助理解爲什麼print edl_loading打印False調用edl_flashing後,我將值改爲True如何通過函數調用設置全局變量?

def edl_flashing(): 
    edl_loading = True 
    print edl_loading 


def main(): 
    global edl_loading 
    edl_loading = False 
    print edl_loading 
    edl_flashing() 
    print edl_loading #Why this prints as False 
if __name__ == '__main__': 
    main() 

OUTPUT: -

False 
True 
False 
+0

'edl_loading'在'edl_flashing'是局部的功能。 – Pythonista

回答

1

您需要在您的兩個函數使用global - mainedl_flashing

def edl_flashing(): 
    global edl_loading 
    edl_loading = True 
    print edl_loading 

不會在功能全局聲明,變量名是本地功能。

上述變化打印出

False 
True 
True 
+0

如果此答案或任何其他人解決了您的問題,請將其標記爲已接受。不僅是對於這個問題,而且對於你將來會問的任何其他問題。 – Chichi