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系列之数据处理编程实例(二)
May 22 Python
python迭代器实例简析
Sep 25 Python
使用Python的urllib2模块处理url和图片的技巧两则
Feb 18 Python
Python 提取dict转换为xml/json/table并输出的实现代码
Aug 28 Python
Python tkinter模块弹出窗口及传值回到主窗口操作详解
Jul 28 Python
python中的随机函数random的用法示例
Jan 27 Python
python调用百度语音REST API
Aug 30 Python
python3 读取Excel表格中的数据
Oct 16 Python
Python 加密与解密小结
Dec 06 Python
TensorFlow tf.nn.conv2d实现卷积的方式
Jan 03 Python
python如何使用代码运行助手
Jul 03 Python
Python TypeError: ‘float‘ object is not subscriptable错误解决
Dec 24 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中$_GET与$_POST过滤sql注入的方法
2014/11/03 PHP
分享PHP函数实现数字与文字分页代码
2015/07/28 PHP
Yii框架Session与Cookie使用方法示例
2019/10/14 PHP
动态加载图片路径 保持JavaScript控件的相对独立性
2010/09/03 Javascript
JavaScript起点(严格模式深度了解)
2013/01/28 Javascript
扩展IE中一些不兼容的方法如contains、startWith等等
2014/01/09 Javascript
node.js中的fs.readSync方法使用说明
2014/12/17 Javascript
jQuery实现鼠标滑过Div层背景变颜色的方法
2015/02/17 Javascript
JavaScript实现点击文字切换登录窗口的方法
2015/05/11 Javascript
javascript实现简单的全选和反选功能
2016/01/05 Javascript
Javascript 6里的4个新语法
2016/08/25 Javascript
JavaScript中boolean类型之三种情景实例代码
2016/11/21 Javascript
bootstrap 下拉多选框进行多选传值问题代码分析
2017/02/14 Javascript
Web纯前端“旭日图”实现元素周期表
2017/03/10 Javascript
详解如何在React组件“外”使用父组件的Props
2018/01/12 Javascript
jquery.pager.js实现分页效果
2019/07/29 jQuery
详解一些适用于Node.js的命名约定
2019/12/08 Javascript
vue项目中使用rem,在入口文件添加内容操作
2020/11/11 Javascript
python基于xml parse实现解析cdatasection数据
2014/09/30 Python
Python实现字典的key和values的交换
2015/08/04 Python
用Python将一个列表分割成小列表的实例讲解
2018/07/02 Python
python机器学习之神经网络实现
2018/10/13 Python
python sort、sort_index方法代码实例
2019/03/28 Python
pandas 数据结构之Series的使用方法
2019/06/21 Python
使用Python自动生成HTML的方法示例
2019/08/06 Python
ubuntu上安装python的实例方法
2019/09/30 Python
Python爬虫库requests获取响应内容、响应状态码、响应头
2020/01/25 Python
Python统计学一数据的概括性度量详解
2020/03/03 Python
Python通过fnmatch模块实现文件名匹配
2020/09/30 Python
CSS3结构性伪类选择器九种写法
2012/04/18 HTML / CSS
《我为你骄傲》教学反思
2014/02/20 职场文书
电焊工岗位职责
2014/03/06 职场文书
中学生检讨书范文
2014/11/03 职场文书
小学一年级数学教学计划
2015/01/20 职场文书
2019假期福利管理制度!
2019/07/15 职场文书
历史名人教你十五个读书方法,赶快Get起来!
2019/07/18 职场文书