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