用户在对属性进行修改操作时,用户的输入值没有经过任何校验,数据类型和值域范围完全不可控,用户的随意输入可能会造成灾难性后果,因此用property进行设置
class Person():
def get_money(self):
return self._money
def set_money(self, value):
if not isinstance(value, int):
self._money = 0
if value < 0 or value > 1000000:
self._money = 0
self._money = value
def del_money(self):
self._money = 0
money = property(get_money, set_money, del_money, 'help text')
>>> p = Person()
>>> p.money = 100
>>> p.money
结果100
>>> p.money = -1
>>> p.money
结果0
>>> p.money = 1000001
>>> p.money
结果0
>>> p.money = 1001
>>> p.money
结果1001
>>> del p.money
>>> p.money
结果0