2

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

1 回答 1

6

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

于 2011-04-09T02:53:45.350 回答