他の変数とともにいくつかのリストを含む辞書を持つクラスを構築しています。クラスを使用している人がリストにアイテムを追加できるようにしたいのですが、リストに追加する値が有効であることを確認できるように、setter メソッドを使用したいと考えています。getter メソッドは、値を取得するためだけに variable.dictionary['value']['subvalue']['three nested thing'] と入力する必要がないように、ユーザーにとってより便利です。
動作するものがありますが、equals 演算子を使用するとセッター メソッドが呼び出されます。ユーザーがリストに追加するため、 += が呼び出されたときにセッターメソッドを呼び出すことができるかどうか疑問に思っていました。そのほうが自然に思えます。
ここに私がこれまでに行ったことのいくつかの擬似コードがあります
def addItemtoList(self,inValue):
if inValue in listOfAcceptableValues:
self.really['long']['nested']['dictionaries']['array'] = list( set( self.really['long']['nested']['dictionaries']['array'] + [inValue] ) )
def getDeeplyNestedList(self):
return self.really['long']['nested']['dictionaries']['array']
thatList = property(getDeeplyNestedList, addItemtoList)