我正在使用一个 python 包(simpy),它提供了我需要的几个类。其中一个类称为 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),它实际上是一个 Event 类,除了三个修改。首先,它应该包含一个附加属性Zombie.reset_callbacks
和一个Zombie.reset()
重置Zombie.callbacks
到先前状态的方法(这就是我需要该Zombie.reset_callbacks
属性的原因。所有这些,我都可以通过子类化来完成Event
。
但是,要使其正常工作,我需要每次Zombie.callbacks.append(x)
调用,x
不仅附加到Zombie.callbacks
,而且Zombie.reset_callbacks
. 我一直在研究装饰器,看看我能不能做到这一点,但我没有看到隧道尽头的光。我目前觉得这是不可能的,或者我可能看错了方向。
在 Python 中是否有可能(更改类属性的附加行为)?如果是这样,怎么办?
提前感谢您的努力!B.