今天我们来讲讲函数的一个好用用法,叫函数修饰器Decorator,函数修饰器是Python特殊的写法,用来修饰函数,实现在函数运行之前,和函数运行结束后,执行某些我们编写的代码,就类似于在函数外面套个壳,这种写法对于像日志功能这种特别有用,在开发时。非常常用的是在函数前后加上日志打印相应的参数或变量结果的值,用来调试程序逻辑的正确性,这种情况用修饰器声明函数就非常方便了。
修饰器这么来用,比如我们可以先定义一个名叫wrapper的修饰器的方法,方法代码内部包裹的函数的调用,并在其前后加上了处理和打印代码。然后在要用的时候用@符号加上修饰器写在函数定义前面就可以了。
这虽然方便多了,但是也需要注意一个问题,就是调用用修饰器修饰的函数时,函数外层打印出来无法反映函数内部的对变量的改变,为了解决这个问题,我们可以用funtools下面的wraps辅助函数来实现,wraps叫做修饰器的修饰器,其特性就是把内部数据拿到外部来用,这就解决了这个问题。
函数的用法和技巧就介绍这么多,下面条目开始关于推导和生成的用法。