BaseHttpServer类中的全局变量

时间:2014-08-19 11:23:15

标签: python basehttpserver

我正在使用BaseHttpServer类的'do_GET'方法。

我想要做的是对此方法的连续调用可以访问相同的共享变量

如果我发送第一个命令0然后是1,我就无法访问相同的变量

from BaseHTTPServer import BaseHTTPRequestHandler,HTTPServer
from threading import Thread

class myHandler(BaseHTTPRequestHandler):

    def do_GET(self):
        #Some code
        if comand == 0:
             self.task()
        elif comand = 1:            
            #AttributeError: myHandler instance has no attribute 'var'
            temp = self.var 
        return

    def task(self):
       #Ok no exception 
       self.var = 0

#Main
server = HTTPServer(('', 8080), myHandler)
server.serve_forever()

2 个答案:

答案 0 :(得分:1)

我解决了创建static class并在静态类全局变量中使用的问题。

答案 1 :(得分:0)

class myHandler(BaseHTTPRequestHandler):

    def __init__(self, myVariable, *args, **kwargs):
        self.myVariable = myVariable
        super(myHandler, self).__init__()  

server = HTTPServer(('', 8080), lambda *args, **kwargs : \
    myHandler(myVariable, *args, **kwargs))