当前位置 博文首页 > ChenYX的博客:Python中*args和**kwargs的区别
*args 用来将参数打包成tuple给函数体调用
例一:
def function(*args): print(args, type(args)) function(1)
输出结果为元组:
(1,) <class 'tuple'> Process finished with exit code 0
例二:
def function(x, y, *args): print(x, y, args) function(1, 2, 3, 4, 5)
输出结果:
1 2 (3, 4, 5) Process finished with exit code 0
二、**kwargs的使用方法
**kwargs 打包关键字参数成dict给函数体调用
例一:
def function(**kwargs): print(kwargs, type(kwargs)) function(a=2)
输出结果为列表:
{'a': 2} <class 'dict'> Process finished with exit code 0
例二:
def function(**kwargs): print(kwargs) function(a=1, b=2, c=3)
输出结果:
{'a': 1, 'b': 2, 'c': 3} Process finished with exit code 0
三、注意参数顺序
参数arg、*args、**kwargs三个参数的位置必须是一定的。必须是(arg,*args,**kwargs)这个顺序,否则程序会报错。
def function(arg,*args,**kwargs): print(arg,args,kwargs) function(6,7,8,9,a=1, b=2, c=3)
输出结果:
6 (7, 8, 9) {'a': 1, 'b': 2, 'c': 3} Process finished with exit code 0
若颠倒位置,则会报错。
def function(arg,*args,**kwargs): print(arg,args,kwargs) function(6,a=1,8,9,a=1, b=2, c=3)
输出结果
function(6,a=1,8,9,a=1, b=2, c=3) ^ SyntaxError: positional argument follows keyword argument
end~? ? ? ? ?
?
cs下一篇:没有了
最新 更多<<
ChenYX的博客:Python中*args和**kwargs的区别 pycharm调试时显示图片问题的解决 Python爬虫之教你利用Scrapy爬取图片 python中print格式化输出的问题 JavaScript嵌入百度地图API的最详细方法 ChenYX的博客:云上python:【一】添加服务器并搭建环境 python 机器学习的标准化、归一化、正则化、离散化和白化 Matlab求解数组中的最大值及它所在的具体位置 ChenYX的博客:云上python:【二】centos安装chrome、chromedriv 用Python远程登陆服务器的步骤 ChenYX的博客:云上python:【三】Linux下程序持续运行与杀死程 MATLAB 如何求取离散点的曲率最大值 ChenYX的博客:云上python:【四】服务器搭建简易TCP SERVER python 用递归实现通用爬虫解析器 AI:如何训练机器学习的模型 ChenYX的博客:在服务器上创建go-cqhttp环境 Python实现Telnet自动连接检测密码的示例 ChenYX的博客:在centos上装载NoneBot2 Python通过m3u8文件下载合并ts视频的操作 python基础之文件操作 ChenYX的博客:开启QBot ChenYX的博客:基于NFC的毕业纪念卡片 ChenYX的博客:NFC卡片使用注意 pycharm debug 断点调试心得分享 Pytest之测试命名规则的使用 “Allen Su”的博客:【Flutter 常见问题】Flutter 如何去掉 Tab Python中Jupyter notebook快捷键总结 pytest之assert断言的具体使用 基于python实现图书管理系统 “Allen Su”的博客:【综合】CSDN 博客专家申请成功