Python函数中的不定长参数相关知识总结


Posted in Python onJune 24, 2021

一、 不定长位置参数

# 在定义函数参数时,可以在形参的前面加*,该形参将获取所有的位置实参
# 它会将所有的实参保存在一个元组中
def fn(*args):
    print("args=", args)
    print("args type:", type(args))


# 带*形参和其他参数配合使用
def fn1(a, b, *args):
    print(a)
    print(b)
    print(args)


# 下面这两种写法可以,但是在传实参的时候要注意
def fn2(*args, a, b):
    print(a)
    print(b)
    print(args)


def fn3(a, *args, b):
    print(a)
    print(args)
    print(b)


if __name__ == "__main__":
    # 接收所有的位置参数
    fn(1, 2, 3, 4, 5)
    fn1(11, 12, 13, 14)
    # fn2(21, 22, 23, 24)  #这么传会报错
    fn2(21, 22, a=23, b=24)
    # fn3(21, 22, 23, 24)  #这么传会报错
    fn3(21, 22, 23, b=24)

fn运行 结果

Python函数中的不定长参数相关知识总结

fn1运行结果

Python函数中的不定长参数相关知识总结

fn2运行结果

Python函数中的不定长参数相关知识总结

fn3运行结果

Python函数中的不定长参数相关知识总结

总结:

1.带*的形参只能有一个,有多个会报错,不能识别

2.带*的形参可以和其他参数配合使用,比如和不带星的

3.带*的形参不一定要放在最后面,可以放在最前面,中间,最后。但是注意,带星的参数后的所有参数,必须以关键字参数的形式传递,否则会保错。

二、不定长关键字参数

# 带*的形参只能接收位置参数,关键字参数接收不能接收
# 如下会报错,fn传如下值是会报错的
def fn(*args):
    print("args=", args)
    print("args type:", type(args))

if __name__ == "__main__":
    # 这样传会保存,args不能接收关键字参数
    fn(1, 2, 3, 4, a=10)

运行如下:

Python函数中的不定长参数相关知识总结

# **形参能接收关键字参数
# 它将接收的所有关键字参数统一保存在一个字典中
def fn4(**kwargs):
    print("kwargs = ", kwargs)
    print(type(kwargs))

if __name__ == "__main__":
    fn4(a=1, b=2, c=3)

运行结果:

Python函数中的不定长参数相关知识总结

总结:

1.**形参只能有一个,并且必须写在所有参数的最后。

2.字典的key就是参数的名字,字典的value就是参数的值

到此这篇关于Python函数中的不定长参数相关知识总结的文章就介绍到这了,更多相关Python不定长参数内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
在Python的Django框架中包装视图函数
Jul 20 Python
Python+OpenCV感兴趣区域ROI提取方法
Jan 10 Python
Python设计模式之建造者模式实例详解
Jan 17 Python
python Elasticsearch索引建立和数据的上传详解
Aug 04 Python
Django之编辑时根据条件跳转回原页面的方法
Aug 21 Python
python web框架Flask实现图形验证码及验证码的动态刷新实例
Oct 14 Python
Python中类似于jquery的pyquery库用法分析
Dec 02 Python
Python3.7基于hashlib和Crypto实现加签验签功能(实例代码)
Dec 04 Python
Python爬虫实现HTTP网络请求多种实现方式
Jun 19 Python
Python生成pdf目录书签的实例方法
Oct 29 Python
windows下python 3.9 Numpy scipy和matlabplot的安装教程详解
Nov 28 Python
如何用python批量调整视频声音
Dec 22 Python
Django REST framework 限流功能的使用
Jun 24 #Python
Python 发送SMTP邮件的简单教程
Python开发工具Pycharm的安装以及使用步骤总结
Python语言规范之Pylint的详细用法
Python基础教程,Python入门教程(超详细)
Jun 24 #Python
Django Paginator分页器的使用示例
python随机打印成绩排名表
You might like
PHP新手上路(九)
2006/10/09 PHP
探讨:php中在foreach中使用foreach ($arr as &$value) 这种类型的解释
2013/06/24 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
2019/12/25 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
PHP7 错误处理机制修改
2021/03/09 PHP
javascript Object与Function使用
2010/01/11 Javascript
JavaScript统计网站访问次数的实现代码
2015/11/18 Javascript
jQuery EasyUI基础教程之EasyUI常用组件(推荐)
2016/07/15 Javascript
Angular.JS利用ng-disabled属性和ng-model实现禁用button效果
2017/04/05 Javascript
JS中的三个循环小结
2017/06/20 Javascript
vue 运用mock数据的示例代码
2017/11/07 Javascript
vue中element组件样式修改无效的解决方法
2018/02/03 Javascript
vue element-ui 绑定@keyup事件无效的解决方法
2018/03/09 Javascript
在Bootstrap开发框架中使用dataTable直接录入表格行数据的方法
2018/10/25 Javascript
Swiper.js实现移动端元素左右滑动
2019/09/08 Javascript
layui 数据表格 根据值(1=业务,2=机构)显示中文名称示例
2019/10/26 Javascript
python机器学习实战之K均值聚类
2017/12/20 Python
pandas 取出表中一列数据所有的值并转换为array类型的方法
2018/04/11 Python
python3.6数独问题的解决
2019/01/21 Python
详解爬虫被封的问题
2019/04/23 Python
Python基于OpenCV实现人脸检测并保存
2019/07/23 Python
python3安装crypto出错及解决方法
2019/07/30 Python
Python利用WMI实现ping命令的例子
2019/08/14 Python
python3.6使用SMTP协议发送邮件
2020/05/20 Python
基于python实现MQTT发布订阅过程原理解析
2020/07/27 Python
Python中免验证跳转到内容页的实例代码
2020/10/23 Python
HTML5实现文件断点续传的方法
2017/01/04 HTML / CSS
法律专业个人实习自我鉴定
2013/09/23 职场文书
九年级物理教学反思
2014/01/29 职场文书
销售人员求职的自我评价分享
2014/03/15 职场文书
工作保证书范文
2014/04/29 职场文书
幼儿园感恩节活动方案
2014/10/06 职场文书
《火烧云》教学反思
2016/02/23 职场文书
史上最全书信经典范文大全(建议收藏)
2019/07/10 职场文书
励志正能量20句:送给所有为梦想拼搏的人
2019/11/11 职场文书
解决python绘图使用subplots出现标题重叠的问题
2021/04/30 Python