装饰器嵌套嵌套三层的原因

2021/7/3 23:21:47

本文主要是介绍装饰器嵌套嵌套三层的原因,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

遇到的问题:当函数体需要传参时,但是传参列表不能改动时(如下图)

下方报错原因:
如上图,首先内层的形参列表(*args,**kwargs)是要与被装饰函数test1的列表进行适应的,如果写在里面,那么将会报错
image.png

这种情况下,就采用传参的第二种方式,通过闭包进行传参(第一种是直接在当前函数传入形参)

那么我包第二层count_time(func),然后传参可不可以,结果如下,由于语法糖的特性,导致这里的参数也不能改
image.png

最终,只能选择包第三层,而第三层是能够接受所有参数的,之所以一二层不穿是因为固定用法,第三层就没这个限制了



这篇关于装饰器嵌套嵌套三层的原因的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程