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的ORM框架SQLObject入门实例
Apr 28 Python
Python的动态重新封装的教程
Apr 11 Python
使用pandas对矢量化数据进行替换处理的方法
Apr 11 Python
pandas数据预处理之dataframe的groupby操作方法
Apr 13 Python
Python实现的爬虫刷回复功能示例
Jun 07 Python
Python使用pickle模块实现序列化功能示例
Jul 13 Python
对python捕获ctrl+c手工中断程序的两种方法详解
Dec 26 Python
Python实现爬取马云的微博功能示例
Feb 16 Python
Python使用pymongo库操作MongoDB数据库的方法实例
Feb 22 Python
python打包成so文件过程解析
Sep 28 Python
使用Python的Turtle库绘制森林的实例
Dec 18 Python
解决Python图形界面中设置尺寸的问题
Mar 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
通过JavaScript或PHP检测Android设备的代码
2011/03/09 PHP
PHP中用接口、抽象类、普通基类实现“面向接口编程”与“耦合方法”简述
2011/03/23 PHP
PHP中return 和 exit 、break和contiue 区别与用法
2012/04/09 PHP
PHP-FPM之Chroot执行环境详解
2015/08/03 PHP
JavaScript访问样式表代码
2010/10/15 Javascript
jquery数组过滤筛选方法grep()简介
2014/06/06 Javascript
JavaScritp添加url参数并将参数加入到url中及更改url参数的方法
2015/10/26 Javascript
基于css3新属性transform及原生js实现鼠标拖动3d立方体旋转
2016/06/12 Javascript
全面了解js中的script标签
2016/07/04 Javascript
vue-cli+webpack记事本项目创建
2017/04/01 Javascript
Angular.js中$resource高大上的数据交互详解
2017/07/30 Javascript
chorme 浏览器记住密码后input黄色背景处理方法(两种)
2017/11/22 Javascript
JS中常用的消息框总结
2018/02/24 Javascript
js如何获取图片url的Blob值并预览示例代码
2019/03/07 Javascript
解决layui checkbox 提交多个值的问题
2019/09/02 Javascript
Webpack设置环境变量的一些误区详解
2019/12/19 Javascript
javascript canvas API内容整理
2020/02/16 Javascript
Vue实现PC端靠边悬浮球的代码
2020/05/09 Javascript
JavaScript中的模拟事件和自定义事件实例分析
2018/07/27 Python
Django REST Framework之频率限制的使用
2019/09/29 Python
python实现视频读取和转化图片
2019/12/10 Python
Python-openCV读RGB通道图实例
2020/01/17 Python
Python Scrapy框架:通用爬虫之CrawlSpider用法简单示例
2020/04/11 Python
Python requests及aiohttp速度对比代码实例
2020/07/16 Python
定义一结构体变量,用其表示点坐标,并输入两点坐标,求两点之间的距离
2015/08/17 面试题
英语专业毕业生求职简历的自我评价
2013/10/24 职场文书
社会保险接收函
2014/01/12 职场文书
单位实习证明怎么写
2014/01/17 职场文书
开会迟到检讨书
2014/02/03 职场文书
接待员岗位责任制
2014/02/10 职场文书
小班下学期幼儿评语
2014/12/30 职场文书
八年级英语教学计划
2015/01/23 职场文书
2015年业务员工作总结范文
2015/04/07 职场文书
多属性、多分类MySQL模式设计
2021/04/05 MySQL
vue3引入highlight.js进行代码高亮的方法实例
2022/04/08 Vue.js
Python测试框架pytest核心库pluggy详解
2022/08/05 Golang