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抓取淘宝下拉框关键词的方法
Jul 08 Python
详解Python中映射类型(字典)操作符的概念和使用
Aug 19 Python
python互斥锁、加锁、同步机制、异步通信知识总结
Feb 11 Python
Flask之flask-script模块使用
Jul 26 Python
python调用摄像头显示图像的实例
Aug 03 Python
TensorFlow实现模型评估
Sep 07 Python
PyQt5创建一个新窗口的实例
Jun 20 Python
django自带serializers序列化返回指定字段的方法
Aug 21 Python
Python如何应用cx_Oracle获取oracle中的clob字段问题
Aug 27 Python
Python3 解决读取中文文件txt编码的问题
Dec 20 Python
使用Pytorch来拟合函数方式
Jan 14 Python
Python 阶乘详解
Oct 05 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+ajax做仿百度搜索下拉自动提示框(有实例)
2012/08/21 PHP
解析PHP缓存函数的使用说明
2013/05/10 PHP
PHP删除指定目录中的所有目录及文件的方法
2015/02/26 PHP
Swoole4.4协程抢占式调度器详解
2019/05/23 PHP
一个小型js框架myJSFrame附API使用帮助
2008/06/28 Javascript
javascript 学习之旅 (1)
2009/02/05 Javascript
JavaScript 全面解析各种浏览器网页中的JS 执行顺序
2009/02/17 Javascript
JavaScript 设计模式学习 Singleton
2009/07/27 Javascript
JavaScript 产生不重复的随机数三种实现思路
2012/12/13 Javascript
js数组循环遍历数组内所有元素的方法
2014/01/18 Javascript
js 数组去重的四种实用方法
2014/09/09 Javascript
浅析Bootstrip的select控件绑定数据的问题
2016/05/10 Javascript
详解Vue快速零配置的打包工具——parcel
2018/01/16 Javascript
新手必须知的Node.js 4个JavaScript基本概念
2018/09/16 Javascript
微信小程序用户盒子、宫格列表的实现
2020/07/01 Javascript
跟老齐学Python之玩转字符串(3)
2014/09/14 Python
python回溯法实现数组全排列输出实例分析
2015/03/17 Python
Python语法快速入门指南
2015/10/12 Python
Python3如何解决字符编码问题详解
2017/04/23 Python
python+django+sql学生信息管理后台开发
2018/01/11 Python
关于Python的一些学习总结
2018/05/25 Python
使用python爬虫获取黄金价格的核心代码
2018/06/13 Python
python实现简单日期工具类
2019/04/24 Python
python multiprocessing模块用法及原理介绍
2019/08/20 Python
python判断单向链表是否包括环,若包含则计算环入口的节点实例分析
2019/10/23 Python
python cv2读取rtsp实时码流按时生成连续视频文件方式
2019/12/25 Python
说出你对remoting 和webservice的理解和应用
2014/06/08 面试题
建筑施工员岗位职责
2013/11/26 职场文书
七一表彰活动方案
2014/01/18 职场文书
工艺员岗位职责
2014/02/11 职场文书
岗位聘任书范文
2014/03/29 职场文书
聘任书模板
2014/03/29 职场文书
美德少年事迹材料500字
2014/08/19 职场文书
详解Vue项目的打包方式(生成dist文件)
2022/01/18 Vue.js
海贼王十大逆天果实 魂魂果实上榜,岩浆果实攻击力最强
2022/03/18 日漫
webpack介绍使用配置教程详解webpack介绍和使用
2022/06/25 Javascript