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