Python 使用 classmethod 定义一个类方法

Document 对象参考手册 Python3 实例

在 Python 中,classmethod 是一个装饰器,用于定义类方法。类方法是绑定到类而不是实例的方法,可以通过类本身或类的实例来调用。类方法的第一个参数通常是 cls,它代表类本身。

下面是一个使用 classmethod 定义类方法的示例:

实例

class MyClass:
    class_variable = "This is a class variable"

    @classmethod
    def class_method(cls):
        return f"Class method called. Class variable: {cls.class_variable}"

# 通过类调用类方法
print(MyClass.class_method())

# 通过实例调用类方法
obj = MyClass()
print(obj.class_method())

代码解析:

  1. class MyClass: 定义了一个名为 MyClass 的类。
  2. class_variable = "This is a class variable" 定义了一个类变量,所有实例共享这个变量。
  3. @classmethod 是一个装饰器,用于将下面的方法 class_method 定义为类方法。
  4. def class_method(cls): 定义了一个类方法,cls 是类方法的第一个参数,代表类本身。
  5. return f"Class method called. Class variable: {cls.class_variable}" 返回一个字符串,其中包含类变量的值。
  6. print(MyClass.class_method()) 通过类本身调用类方法。
  7. obj = MyClass() 创建了一个 MyClass 的实例。
  8. print(obj.class_method()) 通过实例调用类方法。

输出结果:

Class method called. Class variable: This is a class variable
Class method called. Class variable: This is a class variable

无论是通过类本身还是通过实例调用类方法,结果都是相同的,因为类方法是绑定到类的。

Document 对象参考手册 Python3 实例