@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))

 

posted @ 2023-07-15 15:26  胖豆芽  阅读(17)  评论(0编辑  收藏  举报