如何对装饰器进行解包?
上一章,我们对函数进行装饰,但是有时候我们又想撤销这个函数的修饰,直接访问那个没有被修饰的函数,这时候我们就可以用到wrapped函数进行函数装饰器的解包,下面请看代码演示:
|
@somedecorator def add(x, y): return x + y orig_add = add.__wrapped__ otig_add(3, 4) |
这时候我们的现有函数orig_add就会绕过@somedecorator函数的装饰器直接访问函数add。
一般这个解包的功能用在调试和自省(反射)中,方便开发人员进行开发。下一章