这段代码不用在函数中声明global x
就可以打印出x的值
x = 20def getx(): print xgetx()
以下是一个多线程的python代码片段,其中的x,l
都是全局变量,但在threadcode()
函数中只声明了global x
没有global l
。完整的代码是可以成功运行,但是把global x
注释掉后就会报错。请问这是为什么,Lock对象比较特殊吗?
import threading, time, sysx = 50l = threading.Lock() def threadcode(): global x l.acquire() print 'Thread %s invoked.' % threading.currentThread().getName() try: print 'Thread %s running.' % threading.currentThread().getName() x = x + 50 print 'Thread %s set x to %d.' % \ (threading.currentThread().getName(), x) finally: l.release() ...
德玛西亚99
肥皂起泡泡
相关分类