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实现示例
Aug 26 Python
python 实现在txt指定行追加文本的方法
Apr 29 Python
python opencv实现运动检测
Jul 10 Python
Jupyter notebook在mac:linux上的配置和远程访问的方法
Jan 14 Python
python实现趣味图片字符化
Apr 30 Python
解决py2exe打包后,总是多显示一个DOS黑色窗口的问题
Jun 21 Python
Django 静态文件配置过程详解
Jul 23 Python
Python从入门到精通之环境搭建教程图解
Sep 26 Python
python 协程 gevent原理与用法分析
Nov 22 Python
pytorch获取模型某一层参数名及参数值方式
Dec 30 Python
浅谈opencv自动光学检测、目标分割和检测(连通区域和findContours)
Jun 04 Python
Pycharm同步远程服务器调试的方法步骤
Nov 04 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
php 将字符串按大写字母分隔成字符串数组
2010/04/30 PHP
PHP 调试工具Debug Tools
2011/04/30 PHP
PHP基于socket实现客户端和服务端通讯功能
2017/07/13 PHP
在线编辑器的实现原理(兼容IE和FireFox)
2007/03/09 Javascript
jsonp原理及使用
2013/10/28 Javascript
jquery实现带二级菜单的导航示例
2014/04/28 Javascript
javascript将浮点数转换成整数的三个方法
2014/06/23 Javascript
浅谈JavaScript 中有关时间对象的方法
2016/08/15 Javascript
BootStrap Table实现server分页序号连续显示功能(当前页从上一页的结束序号开始)
2017/09/12 Javascript
vue学习笔记之v-if和v-show的区别
2017/09/20 Javascript
JavaScript实现多态和继承的封装操作示例
2018/08/20 Javascript
vue根据进入的路由进行原路返回的方法
2018/09/26 Javascript
写一个Vue Popup组件
2019/02/25 Javascript
vue 列表页跳转详情页获取id以及详情页通过id获取数据
2019/03/27 Javascript
ElementUI Tag组件实现多标签生成的方法示例
2019/07/08 Javascript
记录vue做微信自定义分享的一些问题
2019/09/12 Javascript
详解element上传组件before-remove钩子问题解决
2020/04/08 Javascript
python实现从一组颜色中找出与给定颜色最接近颜色的方法
2015/03/19 Python
python使用PyGame绘制图像并保存为图片文件的方法
2015/04/24 Python
python先序遍历二叉树问题
2017/11/10 Python
python主要用于哪些方向
2020/07/05 Python
python图片合成的示例
2020/11/09 Python
Django restful framework生成API文档过程详解
2020/11/12 Python
Python爬虫教程之利用正则表达式匹配网页内容
2020/12/08 Python
pip 20.3 新版本发布!即将抛弃 Python 2.x(推荐)
2020/12/16 Python
推荐一些比较有用的css3新属性
2014/11/11 HTML / CSS
英国老牌潮鞋店:Offspring
2019/08/19 全球购物
美国农场商店:Blain’s Farm & Fleet
2020/01/17 全球购物
文言文形式的学生求职信
2013/12/03 职场文书
挂牌仪式主持词
2014/03/20 职场文书
局火灾防控工作方案
2014/05/25 职场文书
大专生自荐书范文
2014/06/22 职场文书
化学专业毕业生求职信
2014/07/28 职场文书
党员思想汇报材料
2014/12/19 职场文书
2015年教研工作总结
2015/05/23 职场文书
2015年幼儿教育工作总结
2015/07/24 职场文书