文件名称:将装饰器定义为类的一部分-python cookbook(第3版)高清中文完整版
文件大小:4.84MB
文件格式:PDF
更新时间:2024-06-29 23:06:28
python cookbook 第3版 高清 中文完整版
可以在PEP 362以及 inspect 模块中找到更多关于函数参数对象的信息。在9.16小节还有 另外一个例子。 9.8 将装饰器定义为类的一部分 问题 你想在类中定义装饰器,并将其作用在其他函数或方法上。 解决方案 在类里面定义装饰器很简单,但是你首先要确认它的使用方式。比如到底是作为一个实例 方法还是类方法。 下面我们用例子来阐述它们的不同: from functools import wraps class A: # Decorator as an instance method def decorator1(self, func): @wraps(func) def wrapper(*args, **kwargs): print('Decorator 1') return func(*args, **kwargs) return wrapper # Decorator as a class method @classmethod def decorator2(cls, func): @wraps(func) def wrapper(*args, **kwargs): print('Decorator 2') return func(*args, **kwargs) return wrapper 下面是一使用例子: