Python 使用 classmethod 定义一个类方法
在 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())
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())
代码解析:
class MyClass:定义了一个名为MyClass的类。class_variable = "This is a class variable"定义了一个类变量,所有实例共享这个变量。@classmethod是一个装饰器,用于将下面的方法class_method定义为类方法。def class_method(cls):定义了一个类方法,cls是类方法的第一个参数,代表类本身。return f"Class method called. Class variable: {cls.class_variable}"返回一个字符串,其中包含类变量的值。print(MyClass.class_method())通过类本身调用类方法。obj = MyClass()创建了一个MyClass的实例。print(obj.class_method())通过实例调用类方法。
输出结果:
Class method called. Class variable: This is a class variable Class method called. Class variable: This is a class variable
无论是通过类本身还是通过实例调用类方法,结果都是相同的,因为类方法是绑定到类的。

Python3 实例