Python - 不定长参数 *args 和 **kwargs
Python不定长参数 *args 和 **kwargs
args的全称是arguments -- 参数
kwargs的全称是keyword arguments -- 关键字参数
*args:
前面加个 * ,表示为可变参数,其中 * 是规定的,args可用其他名称替换,但一般习惯用 args 来表示。可变参数在传入函数后,被封装成一个 tuple 来进行使用。
*args举例:
例1:
def numbers(*args):
print(type(args)) # tuple
for n in args:
print(type(n)) # int
numbers(1, 2, 3, 4)
例2:
def function(x, y, *args):
print(x, y, args)
function(1, 2, 3, 4, 5)
结果:
1 2 (3, 4, 5)
用*args定义就可以引入,相当于定义了不定长度的函数,然后在程序中就可以多次使用。
**kwargs :
是一个字典,传入的参数以键值对的形式存放到字典里。
关键字参数使用 kwargs 来标识,是规定,而kwargs可替换,它将不定长参数转换为 dict 传入函数。
**kwargs举例:
例1:
def name(**kwargs):
print(kwargs)
name(a = 1, b = 2, c = 3)
name(a = 1, b= 2, c = 3, d = 4)
结果:
{'a': 1, 'b': 2, 'c': 3}
{'a': 1, 'b': 2, 'c': 3, 'd': 4}
例2:
def foo(x, **kwargs):
print(x, kwargs)
foo(1, y = 1, a = 2, b = 3, c = 4)#将y=1,a=2,b=3,c=4以字典的方式给了kwargs
结果:
1 {'y': 1, 'a': 2, 'b': 3, 'c': 4}
总结:
- *args 和 **kwargs 能使得函数接受可变数量的参数
- *args 代表了额外的位置参数,是一个元祖,**kwargs 代表了额外的关键字参数,是一个字典
- 实际上的关键语法是 * 和 **, args 和 kwargs 只是惯例而已。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现