Python 函数实参解包:* 符号详解
在 Python 函数调用时,在实参前面加一个 * 符号表示对实参进行解包,将实参中的元素逐个传递给函数。这个符号称为'解包运算符'。
例如,假设我们有一个函数 print_numbers,它接受三个参数:
def print_numbers(a, b, c):
print(f'a = {a}, b = {b}, c = {c}')
如果我们有一个包含三个数字的列表 numbers = [1, 2, 3],我们可以使用 * 符号来解包列表,并将每个元素作为单独的参数传递给 print_numbers 函数:
numbers = [1, 2, 3]
print_numbers(*numbers)
这将输出:
a = 1, b = 2, c = 3
解包运算符的使用场景
- 当函数需要多个参数时,使用 * 符号可以避免手动将列表中的元素逐个传递给函数。
- 在函数调用时,使用 * 符号可以将可变数量的参数传递给函数。
- 在函数定义中,使用 * 符号可以收集多个参数,并将它们存储在一个元组中。
注意事项
- 解包运算符 * 只能用于可迭代对象,例如列表、元组、字符串等。
- 解包运算符 * 的数量必须与函数参数的数量一致。
示例
def sum_numbers(*args):
total = 0
for num in args:
total += num
return total
nums = [1, 2, 3, 4, 5]
result = sum_numbers(*nums)
print(f'总和:{result}')
输出:
总和:15
在上述示例中,sum_numbers 函数使用 * 符号收集可变数量的参数,并将它们存储在 args 元组中。然后,函数将所有参数加起来并返回总和。
原文地址: https://www.cveoy.top/t/topic/oaOq 著作权归作者所有。请勿转载和采集!