def avg(first, *args): print(args) return (first + sum(args)) / (1 + len(args)) print(avg(1, 2)) 1.5 print(avg(1, 2, 3, 4, 5)) 3.0
args是一个元组,包含所有传过来的位置参数,代码在之后的计算中会将其视为一个元组序列来处理。
def func(name, **kwargs): print(kwargs) age = kwargs.get("age") or 18 return f"name: {name}, age: {age}" print(func("ming", gender="female")) # name: ming, age: 18 print(func("ming", gender="female", age=22)) # name: ming, age: 22
kwargs是一个字典,包含所有传过来的关键字参数,代码中要是用到相关参数,可通过字典的方式取值。
一个函数想要同时接收任意数量的位置参数和关键字参数,只要联合使用 * 和 ** 即可,所有的位置参数都会放置在元组args中,所有的关键字参数都会放置在字典kwargs中。
原文:https://www.cnblogs.com/bk9527/p/13264809.html