【发布时间】:2019-06-10 23:31:20
【问题描述】:
一个类似的问题has been asked before 但我不知道我是否喜欢这个答案。你有一个父函数,它调用一个子函数。
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)
有没有更好的(即更少的代码)方法来做到这一点?
【问题讨论】:
-
在哪里之前被问过?悬赏该问题以寻求新答案。
-
为什么不把 parent() 中 b 和 c 的默认值设置为 child() 中 b 和 c 的默认值呢?然后你可以打电话给
child(a=a, b=b, c=c)。 -
我可能弄错了,但现在父母和孩子不一样吗?
parent = child有完全相同的功能吗? -
@9769953 child 是之前定义的。 child 的默认值是有意义的。如果其他方法想调用孩子怎么办?我希望他们也可以访问那些合理的默认值
-
看来这毕竟不是重复的。 OP 知道解决方案,但它看起来不太好。此外,这个问题更通用、更容易理解
标签: python function optional-parameters