2020
10-09
10-09
Python如何解除一个装饰器
问题一个装饰器已经作用在一个函数上,你想撤销它,直接访问原始的未包装的那个函数。解决方案假设装饰器是通过@wraps来实现的,那么你可以通过访问__wrapped__属性来访问原始函数:>>>@somedecorator>>>defadd(x,y):...returnx+y...>>>orig_add=add.__wrapped__>>>orig_add(3,4)7>>>讨论直接访问未包装的原始函数在调试、内省和其他函数操作时是很有用的。但是我们这里的方案仅仅适用于在包装器中正确使用了...
继续阅读 >