只要把握住一个概念,使用函数装饰器时就不会被绕晕:函数装饰器就是一个可调用对象,它接受一个参数(一般是函数对象),返回一个可调用对象。
所谓的“带参数的函数装饰器”,其实并不是函数装饰器了,“带参数的函数装饰器”的主要目的是使用参数来制作一个更好的函数装饰器,所以它返回一个函数装饰器。
我们知道functools.wraps可以让被装饰的函数具有原本的元信息(即__name__、__doc__等),它是怎么做到的呢?我们可以实现一个自己版本的简易wraps:
Read More »只要把握住一个概念,使用函数装饰器时就不会被绕晕:函数装饰器就是一个可调用对象,它接受一个参数(一般是函数对象),返回一个可调用对象。
所谓的“带参数的函数装饰器”,其实并不是函数装饰器了,“带参数的函数装饰器”的主要目的是使用参数来制作一个更好的函数装饰器,所以它返回一个函数装饰器。
我们知道functools.wraps可以让被装饰的函数具有原本的元信息(即__name__、__doc__等),它是怎么做到的呢?我们可以实现一个自己版本的简易wraps:
Read More »