这段代码不用在函数中声明globalx就可以打印出x的值x=20defgetx():printxgetx()那请问在哪些情况下必须要使用global声明全局变量?以下是一个多线程的python代码片段,其中的x,l都是全局变量,但在threadcode()函数中只声明了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()...
MMMHUHU
相关分类