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中的多线程编程
Apr 09 Python
在Python操作时间和日期之asctime()方法的使用
May 22 Python
Linux系统上Nginx+Python的web.py与Django框架环境
Dec 25 Python
横向对比分析Python解析XML的四种方式
Mar 30 Python
python语言中with as的用法使用详解
Feb 23 Python
让你Python到很爽的加速递归函数的装饰器
May 26 Python
python2和python3在处理字符串上的区别详解
May 29 Python
python实现批量文件重命名
Oct 31 Python
python 实现屏幕录制示例
Dec 23 Python
Python HTMLTestRunner库安装过程解析
May 25 Python
keras训练浅层卷积网络并保存和加载模型实例
Jul 02 Python
python 通过exifread读取照片信息
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中feof()函数实例测试
2014/08/23 PHP
PHP中substr()与explode()函数用法分析
2014/11/24 PHP
php去除头尾空格的2种方法
2015/03/16 PHP
prototype 的说明 js类
2006/09/07 Javascript
JavaScript中的console.log()函数详细介绍
2014/12/29 Javascript
javascript制作2048游戏
2015/03/30 Javascript
尝试动手制作javascript放大镜效果
2015/12/25 Javascript
JS组件Bootstrap ContextMenu右键菜单使用方法
2016/04/17 Javascript
JavaScript基础教程——入门必看篇
2016/05/20 Javascript
Angular中$cacheFactory的作用和用法实例详解
2016/08/19 Javascript
JS判断浏览器是否安装flash插件的简单方法
2016/09/13 Javascript
模板视图和AngularJS之间冲突的解决方法
2016/11/22 Javascript
JS图片压缩(pc端和移动端都适用)
2017/01/12 Javascript
JavaScript中一些特殊的字符运算
2017/08/17 Javascript
使用Vue自定义指令实现Select组件
2018/05/24 Javascript
javascript标准库(js的标准内置对象)总结
2018/05/26 Javascript
javascript中关于类型判断的一些疑惑小结
2018/10/14 Javascript
axios携带cookie配置详解(axios+koa)
2018/12/28 Javascript
让Python代码更快运行的5种方法
2015/06/21 Python
Python常见格式化字符串方法小结【百分号与format方法】
2016/09/18 Python
Python解决N阶台阶走法问题的方法分析
2017/12/28 Python
从0开始的Python学习014面向对象编程(推荐)
2019/04/02 Python
详解Python的三种可变参数
2019/05/08 Python
关于python导入模块import与常见的模块详解
2019/08/28 Python
世界上最全面的汽车零部件和配件集合:JC Whitney
2016/09/04 全球购物
复核员上岗演讲稿
2014/01/05 职场文书
学习全国两会精神心得体会范文
2014/03/17 职场文书
护士感人事迹
2014/05/01 职场文书
党支部三严三实对照检查材料思想汇报
2014/09/29 职场文书
2014年督导工作总结
2014/11/19 职场文书
郭明义电影观后感
2015/06/08 职场文书
2016感恩母亲节校园广播稿
2015/12/17 职场文书
学习计划是什么
2019/04/30 职场文书
只用Python就可以制作的简单词云
2021/06/07 Python
css3中2D转换之有趣的transform形变效果
2022/02/24 HTML / CSS
彩虹社八名人气艺人全新周边限时推出,性转女装男装一次拥有!
2022/04/01 日漫