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对json的相关操作实例详解
Jan 04 Python
python matplotlib中文显示参数设置解析
Dec 15 Python
TF-IDF与余弦相似性的应用(一) 自动提取关键词
Dec 21 Python
Python Logging 日志记录入门学习
Jun 02 Python
浅谈Python traceback的优雅处理
Aug 31 Python
使用numba对Python运算加速的方法
Oct 15 Python
python+opencv实现摄像头调用的方法
Jun 22 Python
运用PyTorch动手搭建一个共享单车预测器
Aug 06 Python
详解python中的生成器、迭代器、闭包、装饰器
Aug 22 Python
Pytorch 多维数组运算过程的索引处理方式
Dec 27 Python
tensorflow入门:TFRecordDataset变长数据的batch读取详解
Jan 20 Python
Python3和PyCharm安装与环境配置【图文教程】
Feb 14 Python
Django REST framework 限流功能的使用
Jun 24 #Python
Python 发送SMTP邮件的简单教程
Python开发工具Pycharm的安装以及使用步骤总结
Python语言规范之Pylint的详细用法
Python基础教程,Python入门教程(超详细)
Jun 24 #Python
Django Paginator分页器的使用示例
python随机打印成绩排名表
You might like
解决控件遮挡问题:关于有窗口元素和无窗口元素
2007/01/28 PHP
PHP动态生成javascript文件的2个例子
2014/04/11 PHP
实例简介PHP的一些高级面向对象编程的特性
2015/11/27 PHP
谈谈PHP连接Access数据库的注意事项
2016/08/12 PHP
thinkPHP中钩子的使用方法实例分析
2017/11/16 PHP
详解PHP队列的实现
2019/03/14 PHP
VBS通过WMI监视注册表变动的代码
2011/10/27 Javascript
JavaScript地图拖动功能SpryMap的简单实现
2013/07/17 Javascript
原生js编写设为首页兼容ie、火狐和谷歌
2014/06/05 Javascript
js与jquery回车提交的方法
2015/02/03 Javascript
JavaScript中用toString()方法返回时间为字符串
2015/06/12 Javascript
JavaScript编写推箱子游戏
2015/07/07 Javascript
SpringMVC restful 注解之@RequestBody进行json与object转换
2015/12/10 Javascript
jQuery中bind(),live(),delegate(),on()绑定事件方法实例详解
2016/01/19 Javascript
JS实现AES加密并与PHP互通的方法分析
2017/04/19 Javascript
详解使用Visual Studio Code对Node.js进行断点调试
2017/09/14 Javascript
vue页面切换过渡transition效果
2018/10/08 Javascript
vue强制刷新组件的方法示例
2019/02/28 Javascript
微信小程序自定义导航栏实例代码
2019/04/05 Javascript
浅谈JS中this在各个场景下的指向
2019/08/14 Javascript
8个非常实用的Vue自定义指令
2020/12/15 Vue.js
python编写分类决策树的代码
2017/12/21 Python
Python使用turtle库绘制小猪佩奇(实例代码)
2020/01/16 Python
css3.0 图形构成实例练习一
2013/03/19 HTML / CSS
纯css3(无图片/js)制作的几个社交媒体网站的图标
2013/03/21 HTML / CSS
CSS3 清除浮动的方法示例
2018/06/01 HTML / CSS
html5 video全屏播放/自动播放的实现示例
2020/08/06 HTML / CSS
iHerb台湾:维生素、保健品和健康产品
2018/01/31 全球购物
Perfume’s Club澳大利亚官网:西班牙领先的在线美容店
2021/02/01 全球购物
轻化专业学生实习自我鉴定
2013/09/20 职场文书
校运会广播稿100字
2014/01/27 职场文书
趣味运动会活动方案
2014/02/12 职场文书
生死抉择观后感
2015/06/09 职场文书
婚庆公司开业主持词
2015/06/30 职场文书
幼儿园老师新年寄语
2015/08/17 职场文书
python迷宫问题深度优先遍历实例
2021/06/20 Python