Python类方法

Python类方法教程

Python 类中的方法有三种形式,分别为:类方法、实例方法静态方法

Python 的类方法类似于 构造函数,最少也要包含一个 参数,只不过,类方法中通常将其命名为 cls,且 Python 会自动将类本身绑定给 cls 参数。因此,在调用类方法时,无需显式传递 cls 参数。

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

Python类方法定义详解

语法

class People: money = 10000 @classmethod def func_name(cls, params): pass

说明

我们定义了一个 People 类,People 类有一个方法 func_name,func_name 方法是用 @classmethod 修饰的,因此它是一个类方法。

类方法的第一个参数一般为 cls,后面可以有任意多个参数。

Python类方法调用

Python 的类方法调用方法有两种,一种是通过 “类名.方法名” 的方法来调用,另一种是通过 “对象.方法名” 的方法来调用,不过推荐使用 “类名.方法名” 的方式来调用。

类方法调用详解

语法

People.func_name(params)

参数

参数 描述
People 类。
func_name 类方法。
params 参数。

说明

通过 “类名.方法名” 的方法,调用类方法。

通过实例调用类方法详解

语法

p.func_name(params)

参数

参数 描述
p 类对象。
func_name 类方法。
params 参数。

说明

通过 “对象.方法名” 的方法,调用类方法。

案例

类方法调用

通过类名访问类方法

print("嗨客网(www.haicoder.net)") class Student: @classmethod def s_info(cls): print("call Student classmethod") Student.s_info()

程序运行后,控制台输出如下:

29_python类方法.png

我们创建了一个类 Student,接着,为该类添加了一个类方法 s_info,其中类方法必须使用 @classmethod 修饰,且第一个参数必须是 cls,最后,我们使用 “类名.类方法” 的形式调用类方法。

类方法调用

通过对象访问类方法

print("嗨客网(www.haicoder.net)") class Student: @classmethod def s_info(cls): print("call Student classmethod") stu = Student() stu.s_info()

程序运行后,控制台输出如下:

30_python类方法.png

我们创建了一个类 Student,接着,为该类添加了一个类方法 s_info,最后,创建了一个 Student 类的实例 stu,并且通过 stu 来调用类方法。

Python类方法总结

Python 的类方法类似于构造函数,最少也要包含一个参数,只不过,类方法中通常将其命名为 cls,且 Python 会自动将类本身绑定给 cls 参数。因此,在调用类方法时,无需显式传递 cls 参数。

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

class People: money = 10000 @classmethod def func_name(cls, params): pass

Python 的类方法调用方法有两种,一种是通过 “类名.方法名” 的方法来调用,另一种是通过 “对象.方法名” 的方法来调用,不过推荐使用 “类名.方法名” 的方式来调用。