Python kwargs从其他args中获取价值

时间:2016-06-25 17:17:59

标签: python function default kwargs

我想创建一个导出默认'的函数。 kwargs的值基于传递给它的非kwargs。例如:

numbers= [1,2,3,4,5]

def someMath(lst, divideBy = len(lst)):
    return sum(lst)/divideBy

在这个例子中,我希望函数的默认返回值是传递的数字列表的总和除以列表的长度。

someMath(numbers) # returns 3

但是我仍然希望选择更改divideBy值:

someMath(numbers, divideBy=5) # returns 5

这可能吗?如何?

1 个答案:

答案 0 :(得分:1)

我认为Python程序员通常会这样写的方式是执行以下操作:

def someMath(lst, divideBy=None):
    if divideBy is None:
        return sum(lst)/len(lst)
    return sum(lst)/divideBy