如果您想更改on change
属性类中的其他变量,您只需property
为其编写一个。如果你有一个简单的数据类型,那很好用。但是如果你的变量包含一个复杂的类型,比如一个列表(不是那么不典型),内容本身可以被改变而无需variable.setter
再次调用。
是否有任何回调或事件可用于跟踪对类的列表属性的更改?还可以做些什么来保持代码干净而不破坏类的内部功能?
例子:
class Accumulator(object)
def __init__(self,all_things):
# :param all_things: a list of stuff of any kind
self.__all_things = all_things
@property
def all_things(self):
return self.__all_things
@all_things.setter
def all_things(self,input):
self.__all_things = input
跳出框框思考可能是解决方案。首要任务不是保持类结构的活力,而是找到一种可行的模式并允许使用干净的 API!