Python的@classmethod
时间: 2024-02-16 10:58:25 浏览: 77
ClassMethod
@classmethod是Python中的一个装饰器,用于定义类方法。类方法是绑定到类而不是实例的方法,可以通过类或实例来调用。与实例方法不同,类方法无法访问实例的属性,但可以访问类的属性。
以下是一个使用@classmethod定义类方法的示例:
```python
class MyClass:
x = 0
@classmethod
def class_method(cls):
return cls.x
# 通过类调用类方法
print(MyClass.class_method()) # 输出:0
# 通过实例调用类方法
obj = MyClass()
print(obj.class_method()) # 输出:0
```
在上面的示例中,我们定义了一个类`MyClass`,其中包含一个类属性`x`和一个类方法`class_method`。通过`@classmethod`装饰器,我们将`class_method`方法定义为类方法。无论是通过类还是实例调用类方法,都可以访问类属性`x`。
阅读全文