- 在 Python 中,*(星号)可以用于两个不同的上下文:拆包(Unpacking)和扩展(Extended Unpacking)。下面分别解释这两种情况。
-
- 拆包(Unpacking)
- 当 * 用于一个可迭代对象前面时,它会将该对象拆开,将其元素作为独立的参数传递给一个函数或放置在一个容器(如列表或元组)中。
# 拆包
numbers = [1, 2, 3, 4, 5]
print(*numbers) # 打印结果:1 2 3 4 5# 传递给函数
def add_numbers(a, b, c, d, e):return a + b + c + d + eresult = add_numbers(*numbers)
print(result) # 打印结果:15
在上面的例子中,*numbers 将列表 [1, 2, 3, 4, 5] 拆包成独立的参数,传递给 add_numbers 函数。
-
- 扩展(Extended Unpacking):
- # 扩展参数
def print_arguments(*args):for arg in args:print(arg)print_arguments(1, 2, 3, "four") # 打印结果:1 2 3 four
在上面的例子中,args 表示接受任意数量的参数,并将它们收集到一个元组中。
总的来说, 的作用取决于它的上下文,是拆包还是扩展参数。