全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 数据分析师(CDA)专版
518 0
2022-04-22

作者:Kevin

来源:麦叔编程

@property

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

class Circle: def __init__(self, dia): self.dia = dia    @property def area(self):        a = (self.dia**2)*3.14 return ac = 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 aa = Circle.area(4) # 无需实例化,直接从类里调 print("面积:",a)

运行代码后:

> 面积:50.24


      相关帖子DA内容精选
  • 大厂数据分析面试指南!来自亚马逊、谷歌、微软、头条、美团的面试问题!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群