在一个类中,我想定义 N 个持久属性。我可以按如下方式实现它们:
@property
def prop1(self):
return self.__prop1
@prop1.setter
def prop1(self, value):
self.__prop1 = value
persistenceManagement()
@property
def prop2(self):
return self.__prop2
@prop2.setter
def prop2(self, value):
self.__prop2 = value
persistenceManagement()
[...]
@property
def propN(self):
return self.__propN
@propN.setter
def propN(self, value):
self.__propN = value
persistenceManagement()
当然,这些块之间唯一不同的是属性名称(prop1、prop2、...、propN)。persistenceManagement() 是一个函数,当这些属性之一的值发生变化时必须调用该函数。
由于除了单个信息(即属性名称)之外,这些代码块是相同的,我想必须有某种方法可以用单行替换这些代码块中的每一个,以声明具有给定名称的持久属性的存在。就像是
def someMagicalPatternFunction(...):
[...]
someMagicalPatternFunction("prop1")
someMagicalPatternFunction("prop2")
[...]
someMagicalPatternFunction("propN")
...或者也许是我目前看不到的一些装饰技巧。有人知道如何做到这一点吗?