在Python函数中,可选参数(默认参数)和非可选参数(必需参数)的区别在于是否预设默认值。非可选参数必须在调用时显式传递,而可选参数可省略,此时使用预设值。合理使用二者能提升代码灵活性和可读性。
-
非可选参数(必需参数)
定义时无默认值,调用时必须按顺序或名称传递。例如:pythonCopy Code
def greet(name): # name为非可选参数 print(f"Hello, {name}!") greet("Alice") # 必须传入name的值
-
可选参数(默认参数)
定义时通过参数=默认值
指定,调用时可省略。例如:pythonCopy Code
def greet(name, message="Hi"): # message为可选参数 print(f"{message}, {name}!") greet("Bob") # 使用默认值"Hi" greet("Bob", "Hey") # 覆盖默认值
-
混合使用规则
- 非可选参数必须声明在可选参数之前,否则报错。
- 传递参数时可按位置或关键字指定,但关键字参数需在位置参数之后。
掌握这两种参数的使用场景,能有效平衡函数调用的强制性与灵活性,减少冗余代码。建议优先用可选参数处理非核心逻辑,避免过度依赖默认值导致歧义。