解除装饰器作用(python3新增)
来源:互联网 发布:仿苹果6splus淘宝店 编辑:程序博客网 时间:2024/06/08 00:59
一个装饰器已经作用在一个函数上,你想撤销它,直接访问原始的未包装的那个函数。
假设装饰器是通过 @wraps 来实现的,那么你可以通过访问 wrapped 属性来访问原始函数:
>>> @somedecorator>>> def add(x, y):... return x + y...>>> orig_add = add.__wrapped__>>> orig_add(3, 4)7>>>
如果有多个包装器:
In [588]: from functools import wrapsIn [589]: def decorator1(func): ...: @wraps(func) ...: def wrapper(*args, **kwargs): ...: print ('Decorator 1') ...: return func(*args, **kwargs) ...: return wrapper ...: In [590]: def decorator2(func): ...: @wraps(func) ...: def wrapper(*args, **kwargs): ...: print ('Decorator 2') ...: return func(*args, **kwargs) ...: return wrapper ...: In [591]: @decorator1 ...: @decorator2 ...: def add(x, y): ...: return x+y ...: In [592]: add(2,3)Decorator 1Decorator 2Out[592]: 5In [593]: add.__wrapped__(2, 3)Decorator 2Out[593]: 5In [594]: add.__wrapped__.__wrapped__(2,3)Out[594]: 5
参考:Python Cookbook
阅读全文
1 0
- 解除装饰器作用(python3新增)
- python3 装饰器
- Python3 装饰器
- Python3之装饰器
- python3 核心 装饰器
- python3 装饰器
- Python3 装饰器
- Python3 装饰器
- python3.3 装饰器日志
- python3学习笔记:装饰器
- Python3 基础:装饰器和偏函数
- Python3学习(17)--装饰器decorator
- Python3学习(24)--内置装饰器@property
- Python3.5——装饰器及应用详解(上)
- Python3.5——装饰器及应用详解(下)
- python装饰器的wraps作用
- 浅析python中@装饰器的作用
- python中装饰器的作用
- 差分约束系统
- string 中关于 npos 的使用方法详解
- JAVA处理日期(Date)时间(Time)以及相关类的介绍
- jpa @Transient
- 差分约束模板题目 poj 3169
- 解除装饰器作用(python3新增)
- 安装 primesense
- 王毅外长精彩语录
- JAVA简单手写数字识别
- C#使用Quartz.NET中Cron表达式
- apache配置虚拟主机
- 机器学习算法性能评价方式
- 编译型语言和解释型语言
- java中的23种设计模式