我一直在搞乱 pygame 和 python,我希望能够在我的类的属性发生变化时调用一个函数。我目前的解决方案是:
class ExampleClass(parentClass):
def __init__(self):
self.rect = pygame.rect.Rect(0,0,100,100)
def __setattr__(self, name, value):
parentClass.__setattr__(self,name,value)
dofancystuff()
Firstclass = ExampleClass()
这很好用,当我用 更改 rect 值时会调用 dofancystuff Firsclass.rect = pygame.rect.Rect(0,0,100,100)
。但是,如果我说Firstclass.rect.bottom = 3
. __setattr__
并没有调用 dofancystuff。
所以我想我的问题是如何拦截对子类属性的任何更改?
编辑:另外,如果我以错误的方式解决这个问题,请告诉我在 python 方面我不是很了解。