1

ねじれたドキュメントでは、次のように述べています。

新しいアプリケーション コードは、参照を取得するためにこのモジュールをインポートできることに依存するのではなく、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()

リアクターへのアクセスを望むことはかなり一般的であるため、リアクターにアクセスするためだけにファクトリ クラスを作成するのは少しばかげているように思えます。

4

1 に答える 1