Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用多个参数调用方法_Python - Fatal编程技术网

Python 如何使用多个参数调用方法

Python 如何使用多个参数调用方法,python,Python,我正在努力学习python。在像下面的average这样的方法中,如果不为a提供值,我们如何调用此方法?我们只为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(

我正在努力学习python。在像下面的average这样的方法中,如果不为a提供值,我们如何调用此方法?我们只为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。如果a没有值,我们怎么能调用这个方法呢

我们能得到nargs喜欢的第一个值吗。如果是,我们如何提供b的值

def average(*a,b)
使用上述语法,您必须仅按关键字包含
b

average(1,2,3,b=4)
如果您不喜欢,只需直接在函数内部解包,如下所示:

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

您需要为args为空的情况添加处理

所以你想把它叫做没有a和有b?为什么?但是我认为
average(b=(1,2,3))
应该可以工作…“在这样一个方法中,在不为a提供值的情况下如何调用这个方法”-你想要a的默认值吗?嘿,你想要关于
a=5,*b
*a,b
的答案吗?这是一个函数,而不是amethod@M.Volf平均值(b=(1,2,3))不起作用。@MosesKoledoye:考虑到这似乎是一个迁移的好时机。我从所有答案中得到的是,如果函数是平均值(*a,b),那么我们需要指定平均值(1,2,3,b=4),如果我们有平均值(a=5,*b),我们需要调用而不通过平均值(b=(2,3,4))。Thank我可以运行average(1,2,3,b=4),但运行average(b=(1,2,3))不起作用,并生成错误TypeError:average()获得意外的关键字参数“b”。是否有人可以更新此答案中显示的第一个方法已适用于
average(b=(1,2,3))
。参数
a
将在此处取空元组。@wim但第二个元组不起作用,即平均值(a=5,*b)不起平均值的作用(b=(1,2,3))
def average(*args):
    *a, b = args
    ...