我有一个来自类的实例变量,当变量发生变化时,我想执行一些代码。
我知道属性和Observer模式事件处理,但我认为这对我没有帮助。
示例:
class Thing:
def __init__(self):
self.thing = []
self.thing2 = ""
def code_that_executes(self):
self.thing2 = self.thing[0]
s = Thing()
s.thing.append("Something") #The event
答案 0 :(得分:0)
您可以在课程上实现 setattr 。这是一个示例:
class A:
def __init__(self):
self.A = 5
def __setattr__(self, name, value):
if name == "A":
print("A has changed to: {0}".format(value))
现在,当您有一个对象foo = Foo()并调用foo.bar = 5时,您将得到结果:
bar changed to 5
请参见https://docs.python.org/3/reference/datamodel.html#object.setattr
注意:这也会在 init 调用期间打印。