クラスで、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() は、これらのプロパティのいずれかの値が変更されたときに呼び出す必要がある関数です。
これらのコード ブロックは 1 つの情報 (つまり、プロパティ名) を除いて同一であるため、これらのブロックのそれぞれを、特定の名前を持つ永続プロパティの存在を宣言する 1 行に置き換える何らかの方法が必要であると思います。何かのようなもの
def someMagicalPatternFunction(...):
[...]
someMagicalPatternFunction("prop1")
someMagicalPatternFunction("prop2")
[...]
someMagicalPatternFunction("propN")
...または、現時点では見られない装飾のトリックかもしれません。誰かがこれをどのように行うことができるか考えていますか?