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编程中用close()方法关闭文件的教程
May 24 Python
Python中super()函数简介及用法分享
Jul 11 Python
Python3中内置类型bytes和str用法及byte和string之间各种编码转换 问题
Sep 27 Python
python实现图片识别汽车功能
Nov 30 Python
Python实现性能自动化测试竟然如此简单
Jul 30 Python
Python实现朴素贝叶斯的学习与分类过程解析
Aug 24 Python
Python操作excel的方法总结(xlrd、xlwt、openpyxl)
Sep 02 Python
python常用排序算法的实现代码
Nov 08 Python
Linux下升级安装python3.8并配置pip及yum的教程
Jan 02 Python
python代码如何实现余弦相似性计算
Feb 09 Python
Python RabbitMQ实现简单的进程间通信示例
Jul 02 Python
python生成xml时规定dtd实例方法
Sep 21 Python
Django REST framework 限流功能的使用
Jun 24 #Python
Python 发送SMTP邮件的简单教程
Python开发工具Pycharm的安装以及使用步骤总结
Python语言规范之Pylint的详细用法
Python基础教程,Python入门教程(超详细)
Jun 24 #Python
Django Paginator分页器的使用示例
python随机打印成绩排名表
You might like
BBS(php & mysql)完整版(五)
2006/10/09 PHP
PHP异步调用socket实现代码
2012/01/12 PHP
Yii PHP Framework实用入门教程(详细介绍)
2013/06/18 PHP
PHP写的资源下载防盗链类分享
2014/05/12 PHP
PHP跨平台获取服务器IP地址自定义函数分享
2014/12/29 PHP
Apache服务器下防止图片盗链的办法
2015/07/06 PHP
ThinkPHP 模板引擎使用详解
2017/05/07 PHP
thinkPHP框架实现多表查询的方法
2018/06/14 PHP
jQuery EasyUI 中文API Button使用实例
2010/04/14 Javascript
javascript之通用简单的table选项卡实现(二)
2010/05/09 Javascript
分享XmlHttpRequest调用Webservice的一点心得
2012/07/20 Javascript
javascript + jquery实现定时修改文章标题
2014/03/19 Javascript
javascript多行字符串的简单实现方式
2015/05/04 Javascript
vue双向绑定的简单实现
2016/12/22 Javascript
vue实现分页栏效果
2019/06/28 Javascript
jquery html添加元素/删除元素操作实例详解
2020/05/20 jQuery
[00:55]2015国际邀请赛中国区预选赛5月23日——28日约战上海
2015/05/25 DOTA
[56:21]LGD vs IG 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python实现登录接口的示例代码
2017/07/21 Python
Python3 Random模块代码详解
2017/12/04 Python
matplotlib中legend位置调整解析
2017/12/19 Python
Python利用matplotlib.pyplot绘图时如何设置坐标轴刻度
2018/04/09 Python
Python统计纯文本文件中英文单词出现个数的方法总结【测试可用】
2018/07/25 Python
使用python实现简单五子棋游戏
2019/06/18 Python
世界首屈一指的在线男士内衣权威:HisRoom
2017/08/05 全球购物
标签和贴纸印刷:Lightning Labels
2018/03/22 全球购物
澳大利亚设计师服装在线:MISHA
2019/10/07 全球购物
《金子》教学反思
2014/04/13 职场文书
新闻传媒系求职信范文
2014/04/19 职场文书
青春励志演讲稿范文
2014/08/25 职场文书
烈士陵园观后感
2015/06/08 职场文书
初中军训感言
2015/08/01 职场文书
小学校本教研总结
2015/08/13 职场文书
2016幼儿教师自荐信范文
2016/01/28 职场文书
2019年圣诞节祝福语集锦
2019/12/25 职场文书
详解Go语言中配置文件使用与日志配置
2022/06/01 Golang