我的函数如下:def foo(a, b, c):
return a+b+c
现在我想把b改为2并创建签名:def bar(a, c):
return foo(a, 2, c)
另一种选择是使用lambda函数:bar = lambda a, *args: foo(a,2,*args)
但是这也不是很好,因为我必须知道在b之前有多少个参数
functools.partial
部分解决了这个问题:bar = partial(foo, b=2)
但是,它有一个签名bar(a, b=2, c)
,而不是bar(a,c)
有更好的解决办法吗?你知道吗
背景:目前,我尝试使用scipy.优化.最小化. 我要修复的一些参数(在装配过程中不更改)。你知道吗
如果符合您的需要,请考虑嵌套函数。 关于嵌套/修饰函数的一个很好的blog post
相关问题 更多 >
编程相关推荐