property属性
第一种:是一个装饰器
- 作用:
- 使得关联实例属性的getter,setter等方法可以在外部操作时像直接操作属性一样,但实际上还是调用函数进行处理。
class Goods:
"""定义一个商品类
第一种装饰器:@property
第二种装饰器:@property方法名.setter
第三种装饰器:@property方法名.deleter
"""
def __init__(self):
self.__money = 0
@property
def price(self):
return self.__money
@price.setter
def price(self, value):
if value >= 0:
self.__money = value
else:
print("error:请存放正确的数值")
@price.deleter
def price(self):
print('@price.deleter')
obj = Goods()
obj.price
obj.price = 123
del obj.price
第二种使用:类属性
class Goods(object):
def __init__(self):
self.__price = 0
def get_price(self):
return self.__price
def set_price(self, value):
"""必须两个参数"""
if value >= 0:
self.__price = value
else:
print("error:有点问题哦")
def del_price(self):
print("del price")
price = property(get_price, set_price, del_price, "相关描述...")
obj = Goods()
obj.price
obj.price = "价格"
desc = Goods.price.__doc__
print(desc)
del obj.price