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 25 Python
整理Python 常用string函数(收藏)
May 30 Python
利用python实现命令行有道词典的方法示例
Jan 31 Python
Python爬虫包BeautifulSoup简介与安装(一)
Jun 17 Python
python3利用venv配置虚拟环境及过程中的小问题小结
Aug 01 Python
使用python实现快速搭建简易的FTP服务器
Sep 12 Python
python中pika模块问题的深入探究
Oct 13 Python
pycharm访问mysql数据库的方法步骤
Jun 18 Python
pytorch GAN生成对抗网络实例
Jan 10 Python
Django models filter筛选条件详解
Mar 16 Python
python利用platform模块获取系统信息
Oct 09 Python
解决PyCharm无法使用lxml库的问题(图解)
Dec 22 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 数组随机取值的简单实例
2016/05/23 PHP
js常用排序实现代码
2010/12/28 Javascript
extjs 如何给column 加上提示
2014/07/29 Javascript
使用jquery解析XML的方法
2014/09/05 Javascript
JavaScript获取图片真实大小代码实例
2014/09/24 Javascript
node.js中的fs.unlinkSync方法使用说明
2014/12/15 Javascript
基于jquery animate操作css样式属性小结
2015/11/27 Javascript
如何获取元素的最终background-color
2017/02/06 Javascript
Angular实现响应式表单
2017/08/04 Javascript
JavaScript实现三级联动菜单效果
2017/08/16 Javascript
JS动态插入脚本和插入引用外部链接脚本的方法
2018/05/21 Javascript
Vue组件中prop属性使用说明实例代码详解
2018/05/31 Javascript
vue-router+nginx 非根路径配置方法
2018/06/30 Javascript
vue跳转同一个组件,参数不同,页面接收值只接收一次的解决方法
2019/11/05 Javascript
JavaScript使用百度ECharts插件绘制饼图操作示例
2019/11/26 Javascript
vue中封装axios并实现api接口的统一管理
2020/12/25 Vue.js
Python求两个list的差集、交集与并集的方法
2014/11/01 Python
让Django支持Sql Server作后端数据库的方法
2018/05/29 Python
python 实现得到当前时间偏移day天后的日期方法
2018/12/31 Python
OpenCV Python实现图像指定区域裁剪
2021/03/12 Python
解决Windows下python和pip命令无法使用的问题
2020/08/31 Python
Python Selenium XPath根据文本内容查找元素的方法
2020/12/07 Python
初探CSS3中的calc()功能
2015/07/14 HTML / CSS
英国花园、DIY、电器和家居用品商店:Robert Dyas
2019/03/18 全球购物
Linux中如何用命令创建目录
2015/01/12 面试题
什么是GWT的Entry Point
2013/08/16 面试题
新闻记者个人求职的自我评价
2013/11/28 职场文书
行政主管职责范本
2014/03/07 职场文书
农林环境专业求职信
2014/03/13 职场文书
小学生田径运动会广播稿
2014/09/11 职场文书
绵山导游词
2015/02/05 职场文书
计划生育责任书
2015/05/09 职场文书
2016教师廉洁教育心得体会
2016/01/13 职场文书
Nginx使用X-Accel-Redirect实现静态文件下载的统计、鉴权、防盗链、限速等
2021/04/04 Servers
python中的class_static的@classmethod的巧妙用法
2021/06/22 Python
python APScheduler执行定时任务介绍
2022/04/19 Python