函数可变参数与默认值使用详解
默认参数在定义时计算一次,避免使用可变对象作为默认值,应使用None并在函数内初始化;2.args收集位置参数为元组,kwargs收集关键字参数为字典;3.参数顺序必须为普通参数、默认参数、args、kwargs,组合使用可提升函数灵活性。
默认参数在定义时计算一次,避免使用可变对象作为默认值,应使用None并在函数内初始化;2. args收集位置参数为元组,kwargs收集关键字参数为字典;3. 参数顺序必须为普通参数、默认参数、args、kwargs,组合使用可提升函数灵活性。

在 Python 中,函数的可变参数和默认值是两个非常实用的功能,能让你写出更灵活、通用的代码。下面直接说明它们的用法和注意事项。
默认参数的使用
给函数参数设置默认值,可以在调用时省略该参数,使用预设的值。
定义方式是在参数名后用 = 赋值。
例如:def greet(name, greeting="Hello"):
print(f"{greeting}, {name}!")
greet("Alice") # 输出:Hello, Alice!
greet("Bob", "Hi") # 输出:Hi, Bob!
注意:默认值只在函数定义时计算一次,因此不要用可变对象(如列表、字典)作为默认值。
错误示例:
def bad_append(item, lst=[]): # 不推荐
lst.append(item)
return lst
正确做法是使用 None 作为默认值,并在函数内部初始化:
def good_append(item, lst=None):
if lst is None:
lst = []
lst.append(item)
return lst
可变参数的使用
当不确定传入多少个参数时,可以使用可变参数。Python 提供两种形式:*args 和 **kwargs。
*args 收集多余的 positional 参数,变成一个元组。
例如:def sum_all(*args):
return sum(args)
print(sum_all(1, 2, 3)) # 输出:6
print(sum_all(10, 20)) # 输出:30
**kwargs 收集多余的 keyword 参数,变成一个字典。
例如:def print_info(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
print_info(name="Alice", age=25, city="Beijing")
输出:
name: Alice
age: 25
city: Beijing
组合使用默认值与可变参数
你可以同时使用默认参数、*args 和 **kwargs,但要注意参数顺序:
必须按以下顺序定义:
- 普通参数
- 默认参数
- *args
- **kwargs
def example(a, b=10, *args, **kwargs):
print("a:", a)
print("b:", b)
print("args:", args)
print("kwargs:", kwargs)
example(1, 2, 3, 4, x=5, y=6)
输出:
a: 1
b: 2
args: (3, 4)
kwargs: {'x': 5, 'y': 6}
基本上就这些。掌握默认值和可变参数,能让函数接口更友好、适应更多场景。关键是理解每种参数的作用和书写顺序。不复杂但容易忽略细节。
Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。
极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。
















