关于装饰器的问题 求大神解答!!
关于在装饰器中,更改传参,并传入函数的问题,普通情况下用(X,Y)能解决,但是我这里用的是*args 不知道如何更改,请看下面,def validate(func):
def inner(*args, **kwargs):
a = args ###调用的函数传递给args 的是(‘存钱’,100),这里获取的是存入的金额。
while a < 100:
a = int(input('请重新输入要存入的金额'))
## 这里a重新获取了用户要存入的金额,但是需要把他传递给下面的 func函数里面的*args
(这里不知道如何吧新的a打包到 args中,并传递给下面的函数了)
func(*args, **kwargs)
return inner
知道有几个参数为什么用*argsdef validate(func):
def inner(name,a):
while a < 100:
a = int(input('请重新输入要存入的金额'))
func(name,a)
return inner 考虑放**kwargs里面,字典可以跟新值的 永恒的蓝色梦想 发表于 2020-5-9 21:59
知道有几个参数为什么用*args
为了保证通用性,因为还有转账函数, 他就有3个传值。 可能还有其他函数有更多传值。 Stubborn 发表于 2020-5-9 23:08
考虑放**kwargs里面,字典可以跟新值的
元组是不可更改的,我晕,我把这茬忘记了,如果是列表呢?字典还是太麻烦了。 从入门到富豪 发表于 2020-5-9 23:19
元组是不可更改的,我晕,我把这茬忘记了,如果是列表呢?字典还是太麻烦了。
列表是有序的 永恒的蓝色梦想 发表于 2020-5-9 21:59
知道有几个参数为什么用*args
为了保证通用性,因为还有转账函数, 他就有3个传值。 可能还有其他函数有更多传值。
页:
[1]