装饰器嵌套嵌套三层的原因
作者:互联网
遇到的问题:当函数体需要传参时,但是传参列表不能改动时(如下图)
下方报错原因:
如上图,首先内层的形参列表(*args,**kwargs)是要与被装饰函数test1的列表进行适应的,如果写在里面,那么将会报错
这种情况下,就采用传参的第二种方式,通过闭包进行传参(第一种是直接在当前函数传入形参)
那么我包第二层count_time(func),然后传参可不可以,结果如下,由于语法糖的特性,导致这里的参数也不能改
最终,只能选择包第三层,而第三层是能够接受所有参数的,之所以一二层不穿是因为固定用法,第三层就没这个限制了
标签:传参,形参,第三层,列表,嵌套,报错,三层,装饰 来源: https://www.cnblogs.com/zhongzhouyun/p/14967840.html