property 是一个内置的装饰器函数,只在面向对象中使用
求一个圆的周长和面积
# 周长和面积都是通过类的方法得到
from math import pi class Cricle: def __init__(self,r): self.r = r def getPerimeter(self): return 2*pi*self.r def getArea(self): return pi*self.r**2 c1 = Cricle(5) print(c1.getPerimeter()) print(c1.getArea())
# 但是圆的周长和面积更像圆的属性,使用property 将一个函数(无参数)伪装成一个类的属性 from math import pi class Cricle: def __init__(self,r): self.r = r @property def perimeter(self): return 2*pi*self.r @property def area(self): return pi*self.r**2 c1 = Cricle(5) print(c1.perimeter) print(c1.area)