支持我定义了一些函数,例如(非常简化的例子)
def f1(a, b, arg='something'):
...
def f2(c, arg='else'):
...
然后我称使用它们为:
def f(a, b, c):
return f1(a, b) + f2(c)
由于这是非常常用的,但我想单独定义f1和f2定义,以便可以只调用一个。
我想有通话时可能f调用f1,并f2用不同的默认参数,所以我可以做:
def f(a, b, c, arg1='something', arg2='else'):
return f1(a, b, arg1) + f2(c, arg2)
这不是很容易实现(我有比 2 个更多的函数和更多的参数),因为当我更新一个函数时,我需要更新f. 一种选择是使用None默认值,然后在函数体内更改它们,例如
def f1(a, b, arg=None):
arg = arg or 'something'
...
但这隐藏了签名中默认参数的真实值。此外,这并不能解决我所有的问题,因为如果我添加一个新参数,f1我必须更改 的签名f及其实现...
ibeautiful
蝴蝶不菲
人到中年有点甜
相关分类