登录
首页精彩阅读学两个类里最常用的装饰器@property与@staticmethod
学两个类里最常用的装饰器@property与@staticmethod
2022-03-25
收藏
学两个类里最常用的装饰器@property与@staticmethod

作者:Kevin

来源:麦叔编程

@property

@property装饰器可以把类中的实例方法转成一个“值”,上代码:

class Circle: def __init__(self, dia): self.dia = dia

    @property def area(self):
        a = (self.dia**2)*3.14 return a

c = Circle(4)
print("面积:",c.area) # 这里的area方法可以不用带()了 

运行代码后:

> 面积:50.24 

用了@property装饰器,最大的感受就是与常规的实例方法相比少了“()”也能调用了,这样让这个方法看上去更像一个“值”。

@staticmethod

上文算面积的方式有点麻烦,还要实例化类。能不能有一种即调即用的方式?

那就可以拿出@staticmethod装饰器,「带上这个装饰器的方法可以不实例化就能用」

因为不需要将类实例化就能调用,所以构造方法中的实例属性都是不能拿来用的,所以参数里也没有self关键字。

class Circle:  @staticmethod def area(dia): # 没有self关键字,但是需要传入参数 a = (dia**2)*3.14 return a

a = Circle.area(4) # 无需实例化,直接从类里调 print("面积:",a)

运行代码后:

> 面积:50.24 

数据分析咨询请扫描二维码

客服在线
立即咨询