Я новичок в Python, так что если есть что-нибудь здесь это категорически плохо, пожалуйста, укажите на это.
У меня есть объект с этим словарем:
traits = {'happy': 0, 'worker': 0, 'honest': 0}
Значение для каждого признака должно быть целым числом в диапазоне 1-10, и нельзя добавлять новые признаки. Мне нужны геттеры / сеттеры, чтобы я мог убедиться, что эти ограничения соблюдаются. Вот как я сейчас создал геттер и сеттер:
def getTrait(self, key):
if key not in self.traits.keys():
raise KeyError
return traits[key]
def setTrait(self, key, value):
if key not in self.traits.keys():
raise KeyError
value = int(value)
if value < 1 or value > 10:
raise ValueError
traits[key] = value
Я прочитал на этом веб-сайте о методе property ()
. Но я не вижу простого способа использовать его для получения / установки значений внутри словаря. Есть лучший способ это сделать? В идеале я хотел бы использовать этот объект obj.traits ['happy'] = 14
, который будет вызывать мой метод установки и генерировать ValueError, поскольку 14 больше 10.