私は、必要ないくつかのクラスを提供する 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.callbacks
Zombie.reset_callbacks
Event
ただし、これが機能するためには、毎回Zombie.callbacks.append(x)
が呼び出され、 にx
追加されるだけZombie.callbacks
でなく、 も追加される必要がありZombie.reset_callbacks
ます。これができるかどうかデコレーターを調べていますが、トンネルの終わりに光が見えません。現在、これは不可能だと感じているか、間違った方向を見ている可能性があります。
Pythonでそのようなこと(クラス属性の追加動作を変更すること)は可能ですか? もしそうなら、どのように?
事前にご協力いただきありがとうございます。B.