首页 > 编程语言 > 详细

python中的@property装饰器

时间:2021-04-12 15:03:04      阅读:12      评论:0      收藏:0      [点我收藏+]

@property提供了比property()函数更简洁直观的写法。

被 @property 装饰的方法是获取属性值的方法,被装饰方法的名字会被用做属性名。
被 @属性名.setter 装饰的方法是设置属性值的方法。
被 @属性名.deleter 装饰的方法是删除属性值的方法。

@property是把函数方法包装成属性,可以按照属性的调用方法进行调用。

看一个例子,算圆面积

import math
class Area:
    def circle_area(self,r):
        c = math.pi * r ** 2
        return c

area = Area()
circle_area = area.circle_area(5)
print(circle_area)

用@property装饰器来装饰

class Area:

    @property
    def circle_area(self):
         c = math.pi * (self.r ** 2)
         return f"面积是:{c}"

    @circle_area.setter
    def set_r(self,r):
        if r > 0:
            self.r = r
        else:
            print(‘输入有误‘)

    @circle_area.getter
    def circle_half(self):
        c_half = 1/2 * math.pi * (self.r ** 2)
        return f"半圆面积是{c_half}"

area = Area()
area.set_r = 5
print(area.circle_area)
print(area.circle_half)

这样做的好处是,可以对输入作出判断。

python中的@property装饰器

原文:https://www.cnblogs.com/lanhuakai/p/14647493.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!