默认参数在定义时计算一次,避免使用可变对象作为默认值,应使用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)) # 输出:6print(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}
基本上就这些。掌握默认值和可变参数,能让函数接口更友好、适应更多场景。关键是理解每种参数的作用和书写顺序。不复杂但容易忽略细节。
以上就是函数可变参数与默认值如何使用的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1413817.html
微信扫一扫
支付宝扫一扫