在Python中,函数调用参数主要分为以下几种类型:
一、必传参数(位置参数)
定义:必须按顺序传入的参数,调用时数量必须与函数定义一致。
示例:
```python
def greet(name, age):
print(f"Hello, my name is {name} and I am {age} years old.")
greet("Alice", 30) 正确调用
```
二、默认参数
定义:在函数定义时为参数设置默认值,调用时若未传入该参数,则使用默认值。
示例:
```python
def print_info(name, age, sex='male'):
print(f"Name: {name}, Age: {age}, Sex: {sex}")
print_info("Bob", 25) 使用默认性别
print_info("Charlie", 35, "female") 覆盖默认值
```
三、可变参数
定义:允许传入任意数量的位置参数,通过`*args`接收。
示例:
```python
def sum_all(*args):
return sum(args)
print(sum_all(1, 2, 3)) 输出 6
print(sum_all(1, 2, 3, 4, 5)) 输出 15
```
四、关键字参数
定义:通过参数名传递参数值,调用时无需按顺序,但必须使用参数名。
示例:
```python
def configure(width, height, color='blue'):
print(f"Configuring window: width={width}, height={height}, color={color}")
configure(width=800, height=600) 正确调用
configure(800, 600, color='green') 会报错,顺序错误
```
五、其他注意事项
参数传递机制
位置参数按顺序匹配;
关键字参数优先级高于位置参数;
可变参数`*args`收集所有剩余位置参数,` kwargs`收集所有剩余关键字参数。
作用域规则
局部变量仅在函数内部有效,全局变量需使用`global`关键字修改(不推荐)。
特殊场景
使用`*args`和` kwargs`时,需注意参数类型匹配,避免运行时错误。
通过合理使用这些参数类型,可以灵活控制函数调用方式,提高代码的可读性和可维护性。