我正在构建一个类,它有一个字典,其中包含多个列表以及其他变量。我希望使用该类的人能够将项目添加到列表中,但我想通过一个 setter 方法来确保他们添加到列表中的值是有效的。getter 方法为用户提供了更多便利,因此无需键入 variable.dictionary['value']['subvalue']['third nested thing'] 来获取一个值。
我有一些可行的方法,但是当您使用等于运算符时会调用 setter 方法。我想知道是否可以在调用 += 时调用 setter 方法,因为用户将添加到列表中。这似乎更自然。
这是我到目前为止所做的一些伪代码
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)