這段代碼不用在函數(shù)中聲明globalx就可以打印出x的值x=20defgetx():printxgetx()那請問在哪些情況下必須要使用global聲明全局變量?以下是一個多線程的python代碼片段,其中的x,l都是全局變量,但在threadcode()函數(shù)中只聲明了globalx沒有globall。完整的代碼是可以成功運行,但是把globalx注釋掉后就會報錯。請問這是為什么,Lock對象比較特殊嗎?importthreading,time,sysx=50l=threading.Lock()defthreadcode():globalxl.acquire()print'Thread%sinvoked.'%threading.currentThread().getName()try:print'Thread%srunning.'%threading.currentThread().getName()x=x+50print'Thread%ssetxto%d.'%\(threading.currentThread().getName(),x)finally:l.release()...
python中在哪些情況下必須使用global來聲明全局變量?
qq_遁去的一_1
2019-04-23 15:36:21