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
无论是通过类本身还是通过实例调用类方法,结果都是相同的,因为类方法是绑定到类的。
点我分享笔记