使用锁机制和变量作为全局变量(在类范围之外)或类变量(在问题中声明)之间有什么区别?
例如:
class httpHandler(BaseHTTPRequestHandler):
success = 0
fails = 0
statsLock = threading.Lock()
def do_POST(self):
...
httpHandler.statsLock.acquire()
httpHandler.success += 1
self.statsLock.release()
return
或者:
^{pr2}$
Tags:
这两个示例在功能上是相同的,但是您应该在第二个示例中使用变量的“global”定义,因为您修改了全局变量success,并且没有全局的,将创建变量的本地副本(参见this或python global documentation)。在
总之,我认为:
没什么区别。两种方法都有效。但是,全局变量是messy and dangerous,所以我将远离它。在
相关问题 更多 >
编程相关推荐