@property 取代getter setter方法
利用私有属性
class Money(object): def __init__(self): self.__money = 0 def getMoney(self): return self.__money def setMoney(self, value): if isinstance(value, int): self.__money = value else: print("error:不是整型数字")
定义一个property属性
class Money(object): def __init__(self): self.__money = 0 def getMoney(self): return self.__money def setMoney(self, value): if isinstance(value, int): self.__money = value else: print("error:不是整型数字") money = property(getMoney, setMoney) # 定义一个属性,当对这个money设置值时调用setMoney,当获取值时调用getMoney a = Money() a.money = 101 # 调用setMoney方法 print(a.money) # 调用getMoney方法
使用@property
class Money(object): def __init__(self): self.__money = 0 @property #使用装饰器对money进行装饰,那么会自动添加一个叫money的属性,当调用获取money的值时,调用此下一行的方法 def money(self): return self.__money @money.setter #使用装饰器对money进行装饰,当对money设置值时,调用下一行的方法 def money(self, value): if isinstance(value, int): self.__money = value else: print("error:不是整型数字") a = Money() a.money = 100 print(a.money)
LESS IS MORE !