Python函数中的可变长参数详解


Posted in Python onSeptember 12, 2019

一、Python函数中的参数

1、使用python的函数时,有参数类别,比如位置参数、关键字参数、可变长参数

2、位置参数、关键字参数很好理解,关键是可变长参数经常能见到,但是一直没有搞懂是什么意思

二、可变长参数

1、一个星号:函数可以接收任意个数的参数,只需要在形参前面加一个*(星号),一个星号形参的函数会把多个位置参数值当成元祖的形式传入,也就是传入的多个参数值可以在函数内部进行元祖遍历

def length_param(a, *args):
  print("a=", a)
  print("args=", args)

  for arg in args:
    print("arg=", arg)


length_param("zim","this","is","a","good","thing")

执行结果:

Python函数中的可变长参数详解

2、两个星号:形参前面加两个*(星号),注意是两个星号哦,两个星号形参的函数会把关键字参数值当成字典的形式传入,在函数内部会把关键字参数当成字典在函数内部进行遍历

def length_param(a, **kwargs):
  print("a=", a)

   print("kwargs=", kwargs)
 
   for kwarg in kwargs.keys():
     print("kwarg=", kwarg)

length_param("zim",b="this",c="is",d="good")

执行结果:

Python函数中的可变长参数详解

3、一个星号和两个星号混合使用

class Params:
  def length_param(self,*args,**kwargs):
    print("args=",args)
    print("kwargs=",kwargs)

    for arg in args:
      print("arg=",arg)

    for kwarg in kwargs.values():
      print("kwarg=",kwarg)

one = Params()

one.length_param("sam","this","is","good","thing",b="you",c="love",d="me")

执行结果:

Python函数中的可变长参数详解

注意:传入可变长参数时,传入关键字参数的key一定不能有冒号,否则会报如下错误

Python函数中的可变长参数详解

三、注意事项:

函数调用时关键字参数必须在位置参数后面

以上就是本次介绍的全部知识点内容,感谢大家的学习和对三水点靠木的支持。

Python 相关文章推荐
python交互式图形编程实例(三)
Nov 17 Python
python实现对csv文件的列的内容读取
Jul 04 Python
Flask框架WTForm表单用法示例
Jul 20 Python
django从请求到响应的过程深入讲解
Aug 01 Python
django主动抛出403异常的方法详解
Jan 04 Python
使用k8s部署Django项目的方法步骤
Jan 14 Python
在PyCharm的 Terminal(终端)切换Python版本的方法
Aug 02 Python
Jupyter Notebook折叠输出的内容实例
Apr 22 Python
python和php哪个容易学
Jun 19 Python
python文件编写好后如何实践
Jul 07 Python
安装pytorch时报sslerror错误的解决方案
May 17 Python
利用Python实现翻译HTML中的文本字符串
Jun 21 Python
python爬虫-模拟微博登录功能
Sep 12 #Python
python设置随机种子实例讲解
Sep 12 #Python
pytest中文文档之编写断言
Sep 12 #Python
python中调试或排错的五种方法示例
Sep 12 #Python
详解Python 中sys.stdin.readline()的用法
Sep 12 #Python
Python3将数据保存为txt文件的方法
Sep 12 #Python
Python3 tkinter 实现文件读取及保存功能
Sep 12 #Python
You might like
支持oicq头像的留言簿(一)
2006/10/09 PHP
PHP连接MSSQL时nvarchar字段长度被截断为255的解决方法
2014/12/25 PHP
PHP将Excel导入数据库及数据库数据导出至Excel的方法
2015/06/24 PHP
thinkPHP框架可添加js事件的分页类customPage.class.php完整实例
2017/03/16 PHP
PHP正则表达式函数preg_replace用法实例分析
2020/06/04 PHP
PHP的垃圾回收机制代码实例讲解
2021/02/27 PHP
基于jQuery的图片剪切插件
2011/08/03 Javascript
基于jquery的has()方法以及与find()方法以及filter()方法的区别详解
2013/04/26 Javascript
纯JavaScript实现的兼容各浏览器的添加和移除事件封装
2015/03/28 Javascript
javascript实现的全国省市县无刷新多级关联菜单效果代码
2016/08/01 Javascript
js 实现获取name 相同的页面元素并循环遍历的方法
2017/02/14 Javascript
JS二叉树的简单实现方法示例
2017/04/05 Javascript
js实现鼠标跟随运动效果
2020/08/02 Javascript
vue+axios 前端实现登录拦截的两种方式(路由拦截、http拦截)
2018/10/24 Javascript
JS实现的合并两个有序链表算法示例
2019/02/25 Javascript
详解mpvue开发微信小程序基础知识
2019/09/23 Javascript
浅谈webpack和webpack-cli模块源码分析
2020/01/19 Javascript
Openlayers实现地图的基本操作
2020/09/28 Javascript
如何使用 vue-cli 创建模板项目
2020/11/19 Vue.js
python使用点操作符访问字典(dict)数据的方法
2015/03/16 Python
详解在Python中处理异常的教程
2015/05/24 Python
解决python2.7用pip安装包时出现错误的问题
2017/01/23 Python
利用python求积分的实例
2019/07/03 Python
django使用haystack调用Elasticsearch实现索引搜索
2019/07/24 Python
详解numpy矩阵的创建与数据类型
2019/10/18 Python
Python configparser模块封装及构造配置文件
2020/08/07 Python
Python文件操作及内置函数flush原理解析
2020/10/13 Python
高中校园广播稿
2014/01/11 职场文书
职工运动会邀请函
2014/02/02 职场文书
洗车工岗位职责
2014/03/15 职场文书
中专毕业生的自荐书
2014/07/01 职场文书
超市创意活动方案
2014/08/15 职场文书
写给领导的感谢信
2015/01/22 职场文书
材料采购员岗位职责
2015/04/03 职场文书
干货!开幕词的写作方法
2019/04/02 职场文书
Go语言带缓冲的通道实现
2021/04/26 Golang