在 python 中公开嵌套方法的可选参数
Exposing optional arguments of a nested method in python
一个类似的问题,但我不知道我喜欢这个答案。你有一个父函数,它调用一个子函数。
def parent(a):
return child(a) * 2
def child(a, b=10, c=20):
return a + b + c
如果我希望父方法公开 b
和 c
,我可以执行如下操作。它有效,但看起来很麻烦,因为我经常伸手去拿它(也许这表明其他问题)。
def parent(a, b=None, c=None):
kwargs = {}
if b is not None:
kwargs['b']=b
if c is not None:
kwargs['c']=c
return child(a, **kwargs)
是否有更好的(即更少的代码)方法来做到这一点?
如果父函数和子函数都是您自己的函数,那么您可以将默认值定义为两个函数共享的常量。
B_DEF = 10
C_DEF = 20
def parent(a, b=B_DEF, c=C_DEF):
return child(a,b,c) * 2
def child(a, b=B_DEF, c=C_DEF):
return a + b + c
一个类似的问题
def parent(a):
return child(a) * 2
def child(a, b=10, c=20):
return a + b + c
如果我希望父方法公开 b
和 c
,我可以执行如下操作。它有效,但看起来很麻烦,因为我经常伸手去拿它(也许这表明其他问题)。
def parent(a, b=None, c=None):
kwargs = {}
if b is not None:
kwargs['b']=b
if c is not None:
kwargs['c']=c
return child(a, **kwargs)
是否有更好的(即更少的代码)方法来做到这一点?
如果父函数和子函数都是您自己的函数,那么您可以将默认值定义为两个函数共享的常量。
B_DEF = 10
C_DEF = 20
def parent(a, b=B_DEF, c=C_DEF):
return child(a,b,c) * 2
def child(a, b=B_DEF, c=C_DEF):
return a + b + c