python property属性
- 定义时,在实例方法的基础上添加 @property 装饰器;并且仅有一个self参数
- 调用时,无需括号
三种@property装饰器
#coding=utf-8
# ############### 定义 ###############
class Goods:
"""定义一个商品类
第一种装饰器:@property
第二种装饰器:@property方法名.setter
第三种装饰器:@property方法名.deleter
"""
@property
def price(self):
print('@property')
@price.setter
def price(self, value):
print('@price.setter')
@price.deleter
def price(self):
print('@price.deleter')
# ############### 调用 ###############
obj = Goods()
obj.price # 自动执行 @property 修饰的 price 方法,并获取方法的返回值
obj.price = 123 # 自动执行 @price.setter 修饰的 price 方法,并将 123 赋值给方法的参数value
del obj.price # 自动执行 @price.deleter 修饰的 price 方法
``类属性``
def get_price(self):
print("get price...")
return 100
def set_price(self, value):
"""必须两个参数"""
print("set price...")
print(value)
def del_price(self):
print("del price")
price = property(get_price, set_price, del_price, "相关描述...")