我正在整理一个涉及 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()
[...]