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实现得到一个给定类的虚函数
Sep 28 Python
python创建列表和向列表添加元素的实现方法
Dec 25 Python
python中使用%与.format格式化文本方法解析
Dec 27 Python
python机器学习理论与实战(一)K近邻法
Jan 28 Python
Python基于SMTP协议实现发送邮件功能详解
Aug 14 Python
Python 字符串换行的多种方式
Sep 06 Python
python xpath获取页面注释的方法
Jan 14 Python
python 类的继承 实例方法.静态方法.类方法的代码解析
Aug 23 Python
Python如何在main中调用函数内的函数方式
Jun 01 Python
基于python图书馆管理系统设计实例详解
Aug 05 Python
PyCharm 2020.2下配置Anaconda环境的方法步骤
Sep 23 Python
用Python提取PDF表格的方法
Apr 11 Python
Django REST framework 限流功能的使用
Jun 24 #Python
Python 发送SMTP邮件的简单教程
Python开发工具Pycharm的安装以及使用步骤总结
Python语言规范之Pylint的详细用法
Python基础教程,Python入门教程(超详细)
Jun 24 #Python
Django Paginator分页器的使用示例
python随机打印成绩排名表
You might like
星际争霸 Starcraft 秘技补丁
2020/03/14 星际争霸
收集的PHP中与数组相关的函数
2007/03/22 PHP
PHP 数组遍历方法大全(foreach,list,each)
2010/06/30 PHP
php设计模式 DAO(数据访问对象模式)
2011/06/26 PHP
PHP学习笔记(二):变量详解
2015/04/17 PHP
学习php设计模式 php实现命令模式(command)
2015/12/08 PHP
如何通过View::first使用Laravel Blade的动态模板详解
2017/09/21 PHP
php抽象类和接口知识点整理总结
2019/08/02 PHP
javascript下判断一个元素是否存在的代码
2010/03/05 Javascript
JavaScript 以对象为索引的关联数组
2010/05/19 Javascript
javascript实现跳转菜单的具体方法
2013/07/05 Javascript
js导出table数据到excel即导出为EXCEL文档的方法
2013/10/10 Javascript
js解析json读取List中的实体对象示例
2014/03/11 Javascript
在js代码拼接dom对象到页面上去的模板总结(必看)
2017/02/14 Javascript
Javascript实现跨域后台设置拦截的方法详解
2017/08/04 Javascript
vue+iview+less+echarts实战项目总结
2018/02/22 Javascript
JavaScript实现百度搜索框效果
2020/03/26 Javascript
VUE v-for循环中每个item节点动态绑定不同函数的实例
2018/09/26 Javascript
vue 实现滚动到底部翻页效果(pc端)
2019/07/31 Javascript
[01:24:34]2014 DOTA2华西杯精英邀请赛5 24 DK VS LGD
2014/05/25 DOTA
[04:26]2014DOTA2西雅图国际邀请赛 总决赛TOPPLAY
2014/07/22 DOTA
python使用win32com在百度空间插入html元素示例
2014/02/20 Python
python操作字典类型的常用方法(推荐)
2016/05/16 Python
python 3.6 +pyMysql 操作mysql数据库(实例讲解)
2017/12/20 Python
python实现公司年会抽奖程序
2019/01/22 Python
Python+opencv+pyaudio实现带声音屏幕录制
2019/12/23 Python
python3使用Pillow、tesseract-ocr与pytesseract模块的图片识别的方法
2020/02/26 Python
jupyter notebook 恢复误删单元格或者历史代码的实现
2020/04/17 Python
HTML5之SVG 2D入门12—SVG DOM及DOM操作介绍
2013/01/30 HTML / CSS
您的健身减肥和健康饮食专家:vitafy
2017/06/06 全球购物
教师党员思想汇报
2014/01/06 职场文书
大学生心理活动总结
2014/07/04 职场文书
关于读书的演讲稿600字
2014/08/27 职场文书
群众路线对照检查剖析材料
2014/10/09 职场文书
转变工作作风心得体会
2016/01/23 职场文书
nodejs利用readline提示输入内容实例代码
2021/07/15 NodeJs