我正在创建这样的服务器:
server = HTTPServer(('', PORT_NUMBER), MyHandler)
...然后是处理程序:
class MyHandler(BaseHTTPRequestHandler):
x = 0
some_object = SomeClass()
def do_GET(self):
print self.x
self.x += 1
# etc. but x is not used further
class SomeClass:
def __init__(self):
print "Initialising SomeClass"
现在,每次我发出 get 请求时,为 self.x 打印的值始终为 0。但是, SomeClass 构造函数仅在服务器首次启动时被调用一次(我假设是这种情况,因为打印消息在构造函数中只调用一次)。
self.x 为每个请求不断重置的事实表明处理程序类为每个请求重新创建新的,但 SomeClass 消息仅打印一次的事实与此相矛盾。
有人能告诉我这里发生了什么吗?