def foo(a, b, c):
print a+b+c
i = [1,2,3]
是否有一种方法可以在不显式索引i的情况下调用foo(i)? 试图避免使用foo(i[0], i[1], i[2])
def foo(a, b, c):
print a+b+c
i = [1,2,3]
是否有一种方法可以在不显式索引i的情况下调用foo(i)? 试图避免使用foo(i[0], i[1], i[2])
可以使用foo(*i)
。
>>> foo(*i)
6
您还可以在函数定义中使用*
,例如:def foo(*vargs)
,它会将所有非关键字参数放入名为vargs
的元组中,
而使用**
,例如:def foo(**kargs)
,则会将所有关键字参数放入名为kargs
的字典中:
>>> def foo(*vargs, **kargs):
print vargs
print kargs
>>> foo(1, 2, 3, a="A", b="B")
(1, 2, 3)
{'a': 'A', 'b': 'B'}
是的,Python支持这个功能:
foo(*i)
**
可以用于字典和命名参数。def bar(a, b, c):
return a * b * c
j = {'a': 5, 'b': 3, 'c': 2}
bar(**j)