python传参,怎么传递实参和**kargs
时间: 2024-08-14 07:06:06 浏览: 52
【Python】详解 单星号操作符 * 与双星号操作符 ** —— 实例盘点与完全解读 (魔法变量)
5星 · 资源好评率100%
在Python中,函数可以接受多种类型的参数。当你调用函数时,可以按照指定的方式提供参数。
1. **位置参数 (Positional Arguments)**
这是最常见的形式,你需要按顺序提供参数给函数。例如:
```python
def greet(name):
print(f"Hello, {name}!")
greet("Alice") # 输出 "Hello, Alice!"
```
在这个例子中,`name`是一个位置参数,它的值会被直接传递到函数体中。
2. 关键字参数 (Keyword Arguments, **kwargs)
使用关键字将变量名和其对应的值传递给函数,不需要考虑它们的顺序。**kwargs代表“任意数量的关键字参数”,允许你在调用函数时提供任意数量的关键字参数。例如:
```python
def set_preferences(color, size, *args, **kwargs):
print(f"You prefer a {color} of size {size}. Additional preferences: {kwargs}")
set_preferences(color="red", size="medium", favorite_topping="chocolate chips")
```
这里,`favorite_topping`就是通过**kwargs接收的。
3. 默认参数 (Default Parameters)
如果函数有些参数有默认值,你可以选择不提供这些参数的值。如果没有提供,就会使用默认值。
4. 可变长参数 (*args)
如果函数需要处理不定数量的位置参数,可以使用*args,它会收集所有剩余的非关键字参数作为一个元组。
组合使用时,可以先传递位置参数,然后接着传递关键字参数,最后才是*args或**kwargs:
```python
set_preferences("blue", size="large", color="red", favorite_topping="icing sugar", extra="flavored sprinkles")
```
阅读全文