python 之 staticmethod,classmethod,property的区别
绑定方法和非绑定方法:
普通def定义的都是绑定给对象的方法,对象调用时会自动传入对象本事,而类调用时需手动传入对象。
加上@classmethod装饰器就是绑定给类的方法,会自动传类本身
加上@staticmethod是非绑定方法,不会自动传类参数或对象参数
参数有self |
能访问类方法 |
能访问实例方法 |
说明 |
|
staticmethod |
否 |
否 |
否 |
与类、实例均无关 |
classmethod |
是 |
是 |
否 |
只能访问类变量 |
property |
是 |
是 |
是 |
把方法变为属性, 调用时不能加括号 |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步