Python实例方法、静态方法和类方法
创始人
2024-03-01 17:22:23

和类属性一样,类方法也可以进行更细致的划分,具体可分为类方法、实例方法和静态方法。

和类属性的分类不同,区分这 3 种类方法是非常简单的,即采用 @classmethod 修饰的方法为类方法;采用 @staticmethod 修饰的方法为静态方法;不用任何修改的方法为实例方法。

其中 @classmethod 和 @staticmethod 都是函数装饰器,后续章节会对其做详细介绍。

Python类实例方法
通常情况下,在类中定义的方法默认都是实例方法。类的构造方法理论上也属于实例方法,只不过它比较特殊。

Python类方法
Python 类方法和实例方法相似,它最少也要包含一个参数,只不过类方法中通常将其命名为 cls,Python 会自动将类本身绑定给 cls 参数(注意,绑定的不是类对象)。也就是说,在调用类方法时,无需显式为 cls 参数传参。

和 self 一样,cls 参数的命名也不是规定的(可以随意命名),只是 Python 程序员约定俗称的习惯而已。
和实例方法最大的不同在于,类方法需要使用@classmethod修饰符进行修饰

Python类静态方法
静态方法,其实就是学过的函数,和函数唯一的区别是,静态方法定义在类这个空间(类命名空间)中,而函数则定义在程序所在的空间(全局命名空间)中。

静态方法没有类似 self、cls 这样的特殊参数,因此 Python 解释器不会对它包含的参数做任何类或对象的绑定。也正因为如此,类的静态方法中无法调用任何类属性和类方法。
静态方法需要使用@staticmethod修饰,

相关内容

热门资讯

“听见我们”2026米多多合唱... 7月17日晚,长沙音乐厅。“听见我们”2026米多多合唱公益音乐会现场。7月17日晚,长沙音乐厅灯光...
SK海力士,直线拉升 美股存储板块集体拉升,纷纷收复此前4%-7%的盘初跌幅。截至发稿,SK海力士股价上涨6.22%,美光...
市领导领办重点提案办理协商会召... 稿源:掌上长沙2026-07-17 22:32 长沙晚报掌上长...
香港邀桂商桂企与港企“拼船出海... 中新网南宁7月17日电(林浩 韦佳秀 陈沿佑)7月17日,香港特别行政区行政长官李家超表示,期待桂商...
豪江智能聘任38岁李俊平为审计... 7月17日,豪江智能公告,聘任李俊平女士为公司审计部负责人。资料显示,李俊平女士,1988年出生,中...