在 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

如果我希望父方法公开 bc,我可以执行如下操作。它有效,但看起来很麻烦,因为我经常伸手去拿它(也许这表明其他问题)。

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