0

「呼び出し可能な」クラス (__call__メソッドが定義されているクラス) をデコレートして、呼び出される前にバックグラウンド サービスを開始し、__init__それ自体が呼び出される前に渡された引数を操作して、サービスの詳細を含めることができるようにします。始めました。

たとえば、次のようになります。

@init_service # starts service on port 5432
class Foo(object):
  def __init__(self, port=9876):
    # init here. 'port' should now be `5432` instead of the original `9876`

  def __call__(self):
    # calls the background service here, using port `5432`

func = Foo(port=9876)
...
result = func()

クラスinit_serviceにはポート番号を持つクラス属性があり、後でサービスをシャットダウンできます。

4

1 に答える 1