函数参数
必须参数
定义:在函数定义时没有默认值的参数,调用时必须按顺序传递值
def greet(name, message):
print(f"{name}, {message}!")
greet("Alice", "Good morning") # 正确
greet("Bob") # 错误:缺少参数
关键字参数
定义:调用时通过 参数名=值
的方式指定参数,可无视顺序
def create_user(name, age, gender):
print(f"{name}, {age}, {gender}")
create_user(age=25, name="Charlie", gender="M") # 显式指定参数名
create_user("David", gender="F", age=30) # 混合使用
默认参数
定义:在函数定义时为参数提供默认值,调用时可省略
def order_coffee(type="Americano", size="medium"):
print(f"{size} {type}")
order_coffee() # 使用默认值
order_coffee("Latte") # 覆盖第一个默认参数
order_coffee(size="large") # 使用关键字指定参数
默认参数应指向不可变对象(避免使用列表/字典)
可变参数
定义:使用 *args
接收任意数量的位置参数,打包为元组
def sum_numbers(*args):
return sum(args)
print(sum_numbers(1, 2, 3)) # 6
print(sum_numbers(10)) # 10
print(sum_numbers()) # 0
关键字可变参数
定义:使用 **kwargs
接收任意数量的关键字参数,打包为字典
def build_profile(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
build_profile(name="Eve", age=28, country="Canada")
# 输出:
# name: Eve
# age: 28
# country: Canada
参数组合顺序
def complex_func(a, b=0, *args, **kwargs):
# a: 必须参数
# b: 默认参数
# args: 可变参数
# kwargs: 关键字可变参数
pass