0

私は、必要ないくつかのクラスを提供する python パッケージ (simpy) を使用しています。クラスの 1 つは Event と呼ばれ、次のコンストラクターがあります。

def __init__(self, env):
    self.env = env
    """The :class:`~simpy.core.Environment` the event lives in."""
    self.callbacks = []
    """List of functions that are called when the event is processed."""
    self._value = PENDING

コード内のさまざまな場所で、Event.callbacks.appendメソッドを使用してオブジェクトがイベントのコールバックに追加されます。

私が必要としているのは、新しいクラス (私は Zombie と呼んでいます) です。これは、3 つの変更を除いて、実際には Event クラスです。まず、追加の属性と、以前の状態にリセットZombie.reset_callbacksするメソッドを含める必要があります (これが、属性が必要な理由です。これはすべて、サブクラス化することで実行できます。Zombie.reset()Zombie.callbacksZombie.reset_callbacksEvent

ただし、これが機能するためには、毎回Zombie.callbacks.append(x)が呼び出され、 にx追加されるだけZombie.callbacksでなく、 も追加される必要がありZombie.reset_callbacksます。これができるかどうかデコレーターを調べていますが、トンネルの終わりに光が見えません。現在、これは不可能だと感じているか、間違った方向を見ている可能性があります。

Pythonでそのようなこと(クラス属性の追加動作を変更すること)は可能ですか? もしそうなら、どのように?

事前にご協力いただきありがとうございます。B.

4

1 に答える 1