在Python中,*
符号在函数定义和函数调用中有一种特殊的用途,即收集剩余的位置参数(也称为可变位置参数)到一个元组中。这种用法在处理不确定数量的参数时特别有用。
在函数定义中使用 *
在函数定义中,*
紧跟在参数名前面,表示该函数可以接受任意数量的位置参数,并将它们收集到一个元组中。
def print_all(*args):
for arg in args:
print(arg)
print_all(1, 2, 3, 4, 5) # 输出:1 2 3 4 5
在这个例子中,print_all
函数可以接受任意数量的位置参数,并将它们存储在名为 args
的元组中。然后,它遍历这个元组并打印每个元素。
在函数调用中使用 *
在函数调用中,*
可以用于“解包”一个序列(如列表或元组)中的元素,并将它们作为单独的位置参数传递给函数。
def add(a, b, c):
return a + b + c
numbers = [1, 2, 3]
result = add(*numbers) # 解包列表中的元素,并传递给add函数
print(result) # 输出:6
在这个例子中,我们有一个接受三个位置参数的 add
函数。然后,我们有一个包含三个元素的列表 numbers
。通过在 add
函数调用中使用 *numbers
,我们告诉Python解包 numbers
列表中的元素,并将它们作为单独的位置参数传递给 add
函数。
这种用法在处理函数参数和动态生成函数调用时非常有用。