ねじれたドキュメントでは、次のように述べています。
新しいアプリケーション コードは、参照を取得するためにこのモジュールをインポートできることに依存するのではなく、reactor を必要に応じてパラメーターとして受け渡しすることを優先する必要があります。これにより、単体テストが簡素化され、(パフォーマンスの向上として) 複数のリアクターをサポートすることが容易になる可能性がありますが、これは現時点では不可能です。
これを行うための好ましい方法は何ですか? 特に、それをプロトコルに渡す最良の方法は何ですか? (特に、標準の twisted.internet.protocol.Factory だけが必要な場合。)
編集:明確にするために、プロトコルは直接インスタンス化されていないため、以下の方法が好ましい方法なのか、それともプロトコルでリアクターへのアクセスを許可するより良い方法があるのか 疑問に思っています。
class MyFactory(protocol.Factory):
def __init__(self, rct):
self.reactor = rct
class MyProtocol(protocol.Protocol):
def __init__(self):
self.reactor = None
def connectionMade(self):
self.reactor = self.factory.reactor
if __name__=="__main__":
from twisted.internet import reactor
f = MyFactory(reactor)
f.protocol = MyProtocol
reactor.listenXXX(whatever)
reactor.run()
リアクターへのアクセスを望むことはかなり一般的であるため、リアクターにアクセスするためだけにファクトリ クラスを作成するのは少しばかげているように思えます。