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实现省市三级菜单效果
Jan 20 Python
Python输出由1,2,3,4组成的互不相同且无重复的三位数
Feb 01 Python
Django 使用Ajax进行前后台交互的示例讲解
May 28 Python
详解Python中的正则表达式
Jul 08 Python
pygame游戏之旅 添加游戏暂停功能
Nov 21 Python
PyCharm 设置SciView工具窗口的方法
Jan 15 Python
pymongo中group by的操作方法教程
Mar 22 Python
解决在pycharm运行代码,调用CMD窗口的命令运行显示乱码问题
Aug 23 Python
使用Python实现正态分布、正态分布采样
Nov 20 Python
详解python中GPU版本的opencv常用方法介绍
Jul 24 Python
详解Python 最短匹配模式
Jul 29 Python
聊聊基于pytorch实现Resnet对本地数据集的训练问题
Mar 25 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学习 函数 课件
2008/06/15 PHP
php一些错误处理的方法与技巧总结
2013/08/10 PHP
php上传文件中文文件名乱码的解决方法
2013/11/01 PHP
php自定义错误处理用法实例
2015/03/20 PHP
php+ajax实现异步上传文件或图片功能
2017/07/18 PHP
Javascript表达式中连续的 && 和 || 之赋值区别
2010/10/17 Javascript
现代 JavaScript 开发编程风格Idiomatic.js指南中文版
2014/05/28 Javascript
JS来动态的修改url实现对url的增删查改
2014/09/05 Javascript
基于JavaScript代码实现自动生成表格
2016/06/15 Javascript
Angular表单验证实例详解
2016/10/20 Javascript
完美解决spring websocket自动断开连接再创建引发的问题
2017/03/02 Javascript
vue中阻止click事件冒泡,防止触发另一个事件的方法
2018/02/08 Javascript
解决iview打包时UglifyJs报错的问题
2018/03/07 Javascript
IntelliJ IDEA编辑器配置vue高亮显示
2019/09/26 Javascript
Jquery+AJAX实现无刷新上传并重命名文件操作示例【PHP后台接收】
2020/05/29 jQuery
python将xml xsl文件生成html文件存储示例讲解
2013/12/03 Python
用Python中的__slots__缓存资源以节省内存开销的方法
2015/04/02 Python
Python安装Numpy和matplotlib的方法(推荐)
2017/11/02 Python
NetworkX之Prim算法(实例讲解)
2017/12/22 Python
Python实现在tkinter中使用matplotlib绘制图形的方法示例
2018/01/18 Python
Python内置模块logging用法实例分析
2018/02/12 Python
Python3基于sax解析xml操作示例
2018/05/22 Python
Python中断多重循环的思路总结
2019/10/04 Python
python 发送邮件的示例代码(Python2/3都可以直接使用)
2020/12/03 Python
python 获取域名到期时间的方法步骤
2021/02/10 Python
深入理解css中vertical-align属性
2017/04/18 HTML / CSS
HTML5页面无缝闪开的问题及解决方案
2020/06/11 HTML / CSS
英国独特礼物想法和个性化礼物网站:notonthehighstreet.com
2018/04/16 全球购物
北京天润融通.net面试题笔试题
2012/02/20 面试题
计算机专业自荐信
2013/10/14 职场文书
养牛场项目建议书
2014/05/13 职场文书
2014年酒店前台工作总结
2014/11/14 职场文书
公文格式,规则明细(新手收藏)
2019/07/23 职场文书
python 闭包函数详细介绍
2022/04/19 Python
Android开发手册自定义Switch开关按钮控件
2022/06/10 Java/Android
CentOS7设置ssh服务以及端口修改方式
2022/12/24 Servers