【发布时间】:2013-12-23 15:54:52
【问题描述】:
我希望能够包装一个函数,同时在外部函数中仍然允许可选(关键字)参数。我可以这样做:
def outer(p1, p2, *a, **k):
inner(*a, **k)
但是如果我想让 p2 成为“可选参数”呢?很明显:
def outer(p1, p2=None, *a, **k):
inner(*a, **k)
不起作用,我知道为什么它不起作用。我想知道是否有一种很好、干净的方法来实现这一点。是否有一些众所周知的模式或约定?
【问题讨论】:
-
使用函数装饰器
-
你说的它不起作用到底是什么意思?
-
通过可选你的意思是你想使用
p2作为一个关键字参数吗?如果是这种情况,请尝试:Python 2.x - default arguments with *args and **kwargs -
只是想知道为什么你不能把所有的论点都设为 *a 或 **k
标签: python arguments word-wrap keyword-argument