用实例说明python的*args和**kwargs用法
时间:2021-05-04 08:25:55
先来看一个例子:
>>> def foo(*args, **kwargs):
print 'args =', args
print 'kwargs = ', kwargs
print '-----------------------'
>>> if __name__ == '__main__':
foo(1, 2, 3, 4)
foo(a=1, b=2, c=3)
foo(1,2,3,4, a=1, b=2, c=3)
foo('a', 1, None, a=1, b='2', c=3)
其输出结果如下:
args = (1, 2, 3, 4)
kwargs = {}
-----------------------
args = ()
kwargs = {'a': 1, 'c': 3, 'b': 2}
-----------------------
args = (1, 2, 3, 4)
kwargs = {'a': 1, 'c': 3, 'b': 2}
-----------------------
args = ('a', 1, None)
kwargs = {'a': 1, 'c': 3, 'b': '2'}
-----------------------
从以上例子可以看出,这两个是python中的可变参数。*args表示任何多个无名参数,它是一个tuple;**kwargs表示关键字参数,它是一个 dict。并且同时使用*args和**kwargs时,*args参数列必须要在**kwargs前,像foo(a=1, b='2', c=3, a', 1, None, )这样调用的话,会提示语法错误“SyntaxError: non-keyword arg after keyword arg”。如同所示:
标签:python
0
投稿
猜你喜欢
Python在线和离线安装第三方库的方法
2023-08-24 19:37:11
PyTorch梯度下降反向传播
2021-05-15 17:06:14
JS实现简单的二元方程计算器功能示例
2024-05-02 17:39:30
vue3中cookie的详细使用过程
2024-04-30 08:45:05
Go语言eclipse环境搭建图文教程
2024-05-09 09:47:36
Python调用腾讯云短信服务发送手机短信
2021-10-07 16:55:38
python写入已存在的excel数据实例
2021-05-17 15:08:17
简单有效上手Python3异步asyncio问题
2022-01-14 02:28:34
Go语言的type func()用法详解
2024-02-21 12:50:51
python抓取并保存html页面时乱码问题的解决方法
2022-06-06 21:41:40
SQL Server数据库于应用程序的关系
2010-07-26 14:21:00
Go gRPC服务客户端流式RPC教程
2023-07-16 06:08:55
MySQL慢SQL语句常见诱因以及解决方法
2024-01-18 12:36:25
PHP将amr音频文件转换为mp3格式的操作细节
2023-06-15 22:20:35
Python yield的使用详解
2021-07-17 22:23:29
bootstrapValidator表单验证插件学习
2024-04-10 13:53:34
python 动态导入模块实现模块热更新的方法
2022-07-06 17:37:56
python-docx修改已存在的Word文档的表格的字体格式方法
2021-07-20 05:03:07
python和shell获取文本内容的方法
2023-06-20 05:42:35
SQL Server Agent 服务启动后又停止问题
2024-01-25 21:56:49