代码点读机 / Python / classmethod

classmethod Python · 内置函数

`classmethod` 是一个装饰器,用于定义类方法。类方法的第一个参数是类本身(通常命名为 `cls`),而不是实例。这意味着你可以通过类直接调用它,也可以通过实例调用,但它不能访问实例属性。常用于备选构造函数或需要操作类属性的场景。

怎么用

class 类名:
    @classmethod
    def 方法(cls, 参数...):
        ...

小例子

class 学生:
    总人数 = 0
    def __init__(self):
        学生.总人数 += 1
    @classmethod
    def 获取总人数(cls):
        return cls.总人数
a = 学生()
b = 学生()
print(学生.获取总人数())   # 2
**运行结果**:`2`

运行结果

汪汪

常见使用场景

- 备选构造函数(比如从字符串创建对象)。
- 操作类属性。
- 工厂方法。

提醒:- 类方法不能访问实例属性(因为没有 `self`)。 - 可以通过类或实例调用。

官方文档:https://docs.python.org/zh-cn/3/library/functions.html#classmethod

在代码里遇到不认识的词?打开代码点读机,点一下就懂 → ← Python全部词条