@property 更改方法为属性
import math class Circle: def __init__(self,r): self._r= r @property def area(self):#def---->define 定义一个函数或方法 求面积 mianji=round(self._r**2*math.pi,2)# round 四舍五入 取小数点后2位 return mianji #实例化出1个c1,传入半径7 c1= Circle(7) print("面积:%s"%(c1.area))#不是area()方法 而是属性一样直接去掉小括号
当是属性后 可以对属性做修改
@property它接受三个可选的参数:fget、fset 和 fdel。
其中,fget 对应属性的获取操作,fset 对应属性的设置操作,fdel 对应属性的删除操作。
import math class Circle: def __init__(self,r): self._r= r# 半径的值 @property def area(self):#def---->define 定义一个函数或方法 求面积 mianji=round(self._r**2*math.pi,2)# round 四舍五入 取小数点后2位 return mianji @ area.setter #修改半径的值 def area(self,r): self._r = r #实例化出1个c1,传入半径7 c1= Circle(7) print("半径是:%s,面积:%s"%(c1._r,c1.area)) c1.area = 6 print("更改了半径为:%s,面积:%s"%(c1._r,c1.area))