python自定义函数中的*
时间: 2025-01-06 18:46:31 浏览: 3
### Python 自定义函数中星号 (*) 的作用
在 Python 中,单星号 `*` 在自定义函数中有两种主要功能:一是作为打包运算符,在函数定义时收集额外的位置参数;二是作为解包运算符,在函数调用时展开可迭代对象。
#### 打包位置参数
当 `*` 出现在函数定义的形参列表中时,它会把多余的位置参数收集成一个元组。这种方式使得函数可以接受不定数量的位置参数[^2]。
```python
def collect_args(*args):
print(type(args)) # 输出: <class 'tuple'>
for arg in args:
print(arg)
collect_args(1, "two", 3.0)
```
这段代码展示了如何通过 `*args` 来捕获并处理任意数量的位置参数。
#### 解包可迭代对象
另一方面,如果 `*` 被用来调用函数,则其目的是将一个可迭代的对象拆分成单独元素,并把这些元素当作独立的位置参数传入目标函数[^3]。
```python
def display(a, b, c):
print(f"a={a}, b={b}, c={c}")
values = [7, 8, 9]
display(*values) # 结果为 a=7, b=8, c=9
```
此例子说明了怎样利用 `*` 对列表或其他序列类型的变量执行解包操作以便于更灵活地传递参数给函数。
阅读全文