functools模块里存放的是一些工具函数,在使用前需要导入functools模块,在python3.X中,可以通过一下方式获取该模块的工具方法:
python3中增加了更多工具函数,做业务开发时大多情况下用不到,此处介绍使用频率较高的2个函数。
1、partial函数(偏函数)
把一个函数的某些参数设置默认值,返回一个新的函数,调用这个新函数会更简单
可以看出在调用p函数时,该函数已经有了默认参数1,2,3,4。因为foo函数的参数是可变类型,所以在调用p函数时可以继续为其传参。
2、wraps函数
使用装饰器时,有一些细节需要被注意,例如,被装饰后的函数其实已经指向另外一个函数了(函数名等函数属性会发生改变)。
我们知道在定义函数和类时,我们会添加一些注释,即对该类和函数的声明,但是在装饰中,我们如果使用help的方法,却得不到我们想要的注释,看下面的例子:
可以看出,我们想要查看test函数的帮助,不言而喻我们想要的是"test function"这一注释,但结果却输出的是它真正指向的函数的注释,这样就不是很方便了,wraps装饰器就是用来消除这样的副作用
可以看到我们得到了我们想要的test函数的注释。