在 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 元组中。然后,函数将所有参数加起来并返回总和。

Python 函数实参解包:* 符号详解

原文地址: https://www.cveoy.top/t/topic/oaOq 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录