python classmethod
时间: 2023-10-01 21:08:32 浏览: 42
@classmethod 是 Python 中的一个装饰器(decorator),用于定义类方法。类方法是绑定到类而不是实例的方法,可以通过类或实例进行调用。
使用 @classmethod 装饰器来定义类方法时,第一个参数约定为 cls,表示当前类的引用。类方法可以访问类级别的属性和方法,而不需要创建类的实例。
以下是一个使用 @classmethod 定义类方法的示例:
```python
class MyClass:
count = 0
def __init__(self):
MyClass.count += 1
@classmethod
def get_count(cls):
return cls.count
obj1 = MyClass()
obj2 = MyClass()
print(MyClass.get_count()) # 输出结果为 2
```
在上面的示例中,MyClass 类中定义了一个类变量 count 和一个构造函数 __init__()。使用 @classmethod 装饰器来定义了一个类方法 get_count(),用于返回 count 的值。
通过调用 MyClass.get_count(),可以获取 MyClass 类中创建的对象数量。在上述示例中,输出结果为 2,表示已经创建了两个 MyClass 的实例。
需要注意的是,类方法可以通过类或实例进行调用。例如,obj1.get_count() 和 MyClass.get_count() 都会返回相同的结果。