python类中的装饰器
时间: 2023-11-08 12:03:03 浏览: 95
python 装饰器(示例)
Python 类中的装饰器可以通过 @classmethod 和 @staticmethod 来实现。@classmethod 用于定义一个类方法,而 @staticmethod 用于定义一个静态方法。
@classmethod 装饰器会将被装饰的方法转换为类方法,第一个参数默认是类本身,可以通过 cls 参数访问类属性和调用类方法。示例如下:
```
class MyClass:
count = 0
def __init__(self):
MyClass.count += 1
@classmethod
def get_count(cls):
return cls.count
print(MyClass.get_count()) # 输出:0
a = MyClass()
b = MyClass()
print(MyClass.get_count()) # 输出:2
```
@staticmethod 装饰器会将被装饰的方法转换为静态方法,该方法与类和实例均无关,不需要传递任何参数。示例如下:
```
class MyClass:
@staticmethod
def add(x, y):
return x + y
print(MyClass.add(1, 2)) # 输出:3
```
阅读全文