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库urllib与urllib2主要区别分析
Jul 13 Python
python模仿网页版微信发送消息功能
Feb 24 Python
对python list 遍历删除的正确方法详解
Jun 29 Python
Python3实现爬取简书首页文章标题和文章链接的方法【测试可用】
Dec 11 Python
python递归法实现简易连连看小游戏
Mar 25 Python
Python 实现取多维数组第n维的前几位
Nov 26 Python
python3 图片 4通道转成3通道 1通道转成3通道 图片压缩实例
Dec 03 Python
简单的Python人脸识别系统
Jul 14 Python
Scrapy项目实战之爬取某社区用户详情
Sep 17 Python
微软开源最强Python自动化神器Playwright(不用写一行代码)
Jan 05 Python
python四种出行路线规划的实现
Jun 23 Python
关于pytest结合csv模块实现csv格式的数据驱动问题
May 30 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实现把数组按指定的个数分隔
2014/02/17 PHP
php在linux下检测mysql同步状态的方法
2015/01/15 PHP
JS 文件大小判断的实现代码
2010/04/07 Javascript
JQUERY的属性选择符和自定义选择符使用方法(二)
2011/04/07 Javascript
JQuery中判断一个元素下面是否有内容或者有某个标签的判断代码
2012/02/02 Javascript
关闭浏览器输入框自动补齐 兼容IE,FF,Chrome等主流浏览器
2014/02/11 Javascript
js之ActiveX控件使用说明 new ActiveXObject()
2014/03/03 Javascript
javascript去除字符串中所有标点符号和提取纯文本的正则
2014/06/07 Javascript
使用jQuery获得内容以及内容的属性
2015/02/26 Javascript
Javascript函数的参数
2015/07/16 Javascript
Bootstrap的图片轮播示例代码
2015/08/31 Javascript
如何提高数据访问速度
2016/12/26 Javascript
jQuery实现标签子元素的添加和赋值方法
2018/02/24 jQuery
浅析node应用的timing-attack安全漏洞
2018/02/28 Javascript
element-ui 表格数据时间格式化的方法
2018/08/24 Javascript
checkbox在vue中的用法小结
2018/11/13 Javascript
JavaScript中import用法总结
2019/01/20 Javascript
js实现碰撞检测
2021/01/29 Javascript
python连接mysql并提交mysql事务示例
2014/03/05 Python
Python实现的数据结构与算法之队列详解
2015/04/22 Python
Python中pygame的mouse鼠标事件用法实例
2015/11/11 Python
PyTorch快速搭建神经网络及其保存提取方法详解
2018/04/28 Python
Python Django的安装配置教程图文详解
2019/07/17 Python
pygame实现俄罗斯方块游戏(AI篇2)
2019/10/29 Python
python 检查数据中是否有缺失值,删除缺失值的方式
2019/12/02 Python
tensorflow 初始化未初始化的变量实例
2020/02/06 Python
Django Haystack 全文检索与关键词高亮的实现
2020/02/17 Python
eDreams葡萄牙:全球最大的在线旅行社之一
2019/04/15 全球购物
How TDD works
2012/09/30 面试题
总经理秘书的岗位职责
2013/12/27 职场文书
音乐学专业求职信
2014/07/22 职场文书
讲座通知范文
2015/04/23 职场文书
三八妇女节致辞
2015/07/31 职场文书
HR必备:销售经理聘用合同范本
2019/08/21 职场文书
MySQL 如何限制一张表的记录数
2021/09/14 MySQL
浅谈MySql整型索引和字符串索引失效或隐式转换问题
2021/11/20 MySQL