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()
[...]