【发布时间】:2018-11-09 17:47:44
【问题描述】:
我有两个来自库的方法,它们以相同的方式工作。不同之处在于需要一个额外的可选参数。例如:
def method1(a, b, c):
...
def method2(a, b, c, d=None):
...
我必须对这些方法的结果执行相同的任务,所以我有一个组合它们的方法,如下所示:
def wrapper(method, a, b, c, d=None):
...
if d:
results = method(a, b, c, d=d)
else:
results = method(a, b, c)
...
这可行,但是当我添加更多具有不同可选参数的方法时,它变得很麻烦。有没有更好的方法来处理这些参数?
【问题讨论】:
-
查看
*运算符以获得函数参数;我怀疑您可以通过简单的参数列表从那里解决您的问题,例如results = method(*arg_list) -
尝试
**kwargs的参数d。 -
这些是方法还是函数?但我同意,最好是修改方法/函数以有条件地处理 args/kwargs。
-
在我的例子中,方法 1 和 2 实际上是方法,包装器是一个函数,但我试图概括这个例子。没想到
*args整体可以通过。
标签: python methods optional-parameters