如何从BaseHTTPRequestHandler访问HTTPServer的成员?

Wil*_*hin 2 python basehttpserver httpserver

我正在整理一个涉及GUI,HTTP和TCP服务器的小应用程序.GUI控制从HTTP和TCP服务器返回到客户端的响应.我使用HTTPServer和SocketServer.TCPServer类作为服务器,具有BaseHTTPRequestHandler和StreamRequestHandler的子类.但是让我们首先关注事物的HTTP方面.

当HTTPServer收到请求时,它应该检查GUI的状态,并做出适当的响应.我已经将一个成员变量添加到指向GUI的HTTPServer,但是无法找到从BaseHTTPRequestHandler子类访问该字段的好方法.如何才能做到这一点?

下面是我目前的代码,虽然Python抛出异常,MyHTTPHandler instance has no attribute 'server':

class MyHTTPHandler(BaseHTTPRequestHandler):
    def __init__(self, request, client_address, server):
        BaseHTTPRequestHandler.__init__(self, request, client_address, server)
        self._server = server

    def do_GET(self):
        self._server.get_interface().do_something()
        [...]
Run Code Online (Sandbox Code Playgroud)

cpp*_*ppb 5

BaseHTTPRequestHandler具有内置属性server.不确定为什么要self._server在继承的类中设置另一个.如果您还可以复制get_interface()方法中的代码,将会很有用.这个'服务器'的论点是什么?继承的实例HttpServer