楼主: CDA网校
517 0

[CDA数据分析师学习之路] 学两个类里最常用的装饰器@property与@staticmethod [推广有奖]

管理员

已卖:189份资源

泰斗

3%

还不是VIP/贵宾

-

威望
3
论坛币
118687 个
通用积分
10381.1419
学术水平
278 点
热心指数
286 点
信用等级
253 点
经验
228235 点
帖子
6932
精华
19
在线时间
4378 小时
注册时间
2019-9-13
最后登录
2026-1-8

初级热心勋章

楼主
CDA网校 学生认证  发表于 2022-4-22 15:39:15 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

作者: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内容精选
  • 大厂数据分析面试指南!来自亚马逊、谷歌、微软、头条、美团的面试问题!
二维码

扫码加我 拉你入群

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

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

关键词:property static Method CME ICM

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-8 19:11