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函数局部变量用法实例分析
Aug 04 Python
栈和队列数据结构的基本概念及其相关的Python实现
Aug 24 Python
import的本质解析
Oct 30 Python
Python判断文件和字符串编码类型的实例
Dec 21 Python
利用Python yagmail三行代码实现发送邮件
May 11 Python
mac下如何将python2.7改为python3
Jul 13 Python
Python 字符串与数字输出方法
Jul 16 Python
Python实现简单层次聚类算法以及可视化
Mar 18 Python
Python玩转加密的技巧【推荐】
May 13 Python
Python和Sublime整合过程图示
Dec 25 Python
Python 解决火狐浏览器不弹出下载框直接下载的问题
Mar 09 Python
解决python图像处理图像赋值后变为白色的问题
Jun 04 Python
Django REST framework 限流功能的使用
Jun 24 #Python
Python 发送SMTP邮件的简单教程
Python开发工具Pycharm的安装以及使用步骤总结
Python语言规范之Pylint的详细用法
Python基础教程,Python入门教程(超详细)
Jun 24 #Python
Django Paginator分页器的使用示例
python随机打印成绩排名表
You might like
让Json更懂中文(JSON_UNESCAPED_UNICODE)
2011/10/27 PHP
PHP随机字符串生成代码(包括大小写字母)
2013/06/24 PHP
PHP将数据导出Excel表中的实例(投机型)
2017/07/31 PHP
PHP封装类似thinkphp连贯操作数据库Db类与简单应用示例
2019/05/08 PHP
解决laravel中日志权限莫名变成了root的问题
2019/10/17 PHP
TP5框架实现一次选择多张图片并预览的方法示例
2020/04/04 PHP
ASP.NET中使用后端代码注册脚本 生成JQUERY-EASYUI的界面错位的解决方法
2010/06/12 Javascript
cnblogs中在闪存中屏蔽某人的实现代码
2010/11/14 Javascript
jQuery自动切换/点击切换选项卡效果的小例子
2013/08/12 Javascript
Javascript递归打印Document层次关系实例分析
2015/05/15 Javascript
AngularJS中如何使用$parse或$eval在运行时对Scope变量赋值
2016/01/25 Javascript
Angular的自定义指令以及实例
2016/12/26 Javascript
详解nodejs的express如何自动生成项目框架
2017/07/12 NodeJs
详解使用element-ui table组件的筛选功能的一个小坑
2018/11/02 Javascript
jQuery实现的中英文切换功能示例
2019/01/11 jQuery
Jquery获取radio选中值实例总结
2019/01/17 jQuery
Vue项目安装插件并保存
2019/01/28 Javascript
微信小程序 wx:for遍历循环使用实例解析
2019/09/09 Javascript
node.js中Buffer缓冲器的原理与使用方法分析
2019/11/23 Javascript
JavaScript this使用方法图解
2020/02/04 Javascript
vue-video-player 解决微信自动全屏播放问题(横竖屏导致样式错乱问题)
2020/02/25 Javascript
jQuery 函数实例分析【函数声明、函数表达式、匿名函数等】
2020/05/19 jQuery
vue移动端的左右滑动事件详解
2020/06/17 Javascript
Vue.extend 登录注册模态框的实现
2020/12/29 Vue.js
python中argparse模块用法实例详解
2015/06/03 Python
Python操作MySQL数据库9个实用实例
2015/12/11 Python
Python numpy.array()生成相同元素数组的示例
2018/11/12 Python
pytorch::Dataloader中的迭代器和生成器应用详解
2020/01/03 Python
社会学专业求职信
2014/02/24 职场文书
实习报告评语
2014/04/26 职场文书
反四风个人对照检查材料
2014/09/26 职场文书
2014年领导班子专项整治整改方案
2014/09/28 职场文书
新员工考核评语
2014/12/31 职场文书
中秋节祝酒词
2015/08/12 职场文书
Anaconda安装pytorch和paddle的方法步骤
2022/04/03 Python
高通2023 年将发布高性能PC处理器
2022/04/29 数码科技