我正在尝试学习python。在下面的平均值之类的方法中,如何在不提供平均值的情况下调用此方法,而仅为b提供值。
我们将如何称呼这种方法。

def average(a=5 , *b):
    sum=0
    count=0
    print(" b is {0}".format(b))
    for bb in b:
        sum += bb
        count+=1
    av=(sum+a)/(count+1)
    return av

print("average is {0}".format(average(3,5,7,8,9,2)))


在这里,a = 3,其余为b。我们如何才能完全没有价值地调用此方法。

我们可以像nargs这样拥有第一个值吗?如果是,我们如何提供b的值。

def average(*a,b)

最佳答案

def average(*a, b):
    ...


使用上面的语法,必须通过仅关键字包含b

average(1,2,3,b=4)


如果您不喜欢它,则只需直接在函数内部拆包,如下所示:

def average(*args):
    *a, b = args
    ...


对于args为空的情况,您将需要添加处理。

关于python - 如何使用多个参数调用方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47638250/

10-12 17:16