python property使用
- python==3.7
@property把方法变成属性调用
self._price是一个私有变量,如果想在绑定属性时做一些限制,可以实现一个set方法
class Car(object):
def __init__(self, price=1):
self._price = price
def get_price(self):
return self._price
def set_prices(self, value):
if value < 10:
raise RuntimeError("must < 10")
self._price = value
if __name__ == '__main__':
c = Car(10)
print(c.get_price())
c.set_prices(14)
print(c.get_price())
访问变量时调c.get_price()
设置变量时调c.set_prices(14)
@property把方法变成属性调用
可以把上面的绑定方式改成 c.price == 13
class Car(object):
def __init__(self, price=1):
self._price = price
# 把方法变成属性调用
@property
def price(self):
return self._price
# 属性price允许修改
@price.setter
def price(self, value):
if value < 10:
raise RuntimeError("must < 10")
self._price = value
if __name__ == '__main__':
c = Car(10)
c.price = 12
print(c.price)
@price.setter 表示price可以修改