2

クラス 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()
4

2 に答える 2

2

静的クラスを作成し、静的クラスのグローバル変数で使用する問題を解決します。

于 2014-08-19T15:11:38.317 に答える
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))
于 2014-08-19T11:43:29.030 に答える