在Python中,是否可以在运行时重新定义函数的默认参数?
我在这里定义了一个有3个参数的函数:
def multiplyNumbers(x,y,z):
return x*y*z
print(multiplyNumbers(x=2,y=3,z=3))
接下来,我尝试(未成功)为 y 设置默认参数值,然后尝试在不带参数的情况下调用该函数y
:
multiplyNumbers.y = 2;
print(multiplyNumbers(x=3, z=3))
但由于默认值,产生了以下错误y
没有正确设置:
TypeError: multiplyNumbers() missing 1 required positional argument: 'y'
是否可以像我在这里尝试那样在运行时重新定义函数的默认参数?
只需使用functools.partial
multiplyNumbers = functools.partial(multiplyNumbers, y = 42)
这里有一个问题:你将无法将其称为multiplyNumbers(5, 7, 9);
你应该手动说y=7
如果您需要删除默认参数,我看到两种方法:
-
将原始函数存储在某处
oldF = f
f = functools.partial(f, y = 42)
//work with changed f
f = oldF //restore
-
use partial.func
f = f.func //go to previous version.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)