如何对实例变量中的更改执行代码



我有一个来自类的实例变量,我想在我的变量发生变化时执行一些代码。

我知道属性和观察者模式事件处理,但我认为这对我的情况没有帮助。

例:

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 

你可以在你的类上实现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。塞塔特尔

注意:这也将在初始化调用期间打印。

相关内容

  • 没有找到相关文章

最新更新