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通过imaplib模块读取gmail里邮件的方法
May 08 Python
python实现mysql的单引号字符串过滤方法
Nov 14 Python
Python二叉树的定义及常用遍历算法分析
Nov 24 Python
将python图片转为二进制文本的实例
Jan 24 Python
Python实现E-Mail收集插件实例教程
Feb 06 Python
详解Django-restframework 之频率源码分析
Feb 27 Python
详解python列表生成式和列表生成式器区别
Mar 27 Python
python学习开发mock接口
Apr 28 Python
python文档字符串(函数使用说明)使用详解
Jul 30 Python
用python写测试数据文件过程解析
Sep 25 Python
Python 实现自动获取种子磁力链接方式
Jan 16 Python
对Keras中predict()方法和predict_classes()方法的区别说明
Jun 09 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实现让页面只能被百度gogole蜘蛛访问的方法
2009/12/29 PHP
php生成excel列序号代码实例
2013/12/24 PHP
Laravel框架实现文件上传的方法分析
2019/09/29 PHP
Js注册协议倒计时的小例子
2013/06/24 Javascript
javascript实现十六进制颜色值(HEX)和RGB格式相互转换
2014/06/20 Javascript
js 左右悬浮对联广告特效代码
2014/12/12 Javascript
node.js中的fs.fsyncSync方法使用说明
2014/12/15 Javascript
JavaScript动态修改网页元素内容的方法
2015/03/21 Javascript
JavaScript生成二维码图片小结
2015/12/27 Javascript
JS实现弹出居中的模式窗口示例
2016/06/20 Javascript
AngularJS入门教程之 XMLHttpRequest实例讲解
2016/07/27 Javascript
jquery实现全选、不选、反选的两种方法
2016/09/06 Javascript
Select2.js下拉框使用小结
2016/10/24 Javascript
AngularJS模糊查询功能实现代码(过滤内容下拉菜单排序过滤敏感字符验证判断后添加表格信息)
2017/10/24 Javascript
Angular封装表单控件及思想总结
2019/12/11 Javascript
js实现自定义右键菜单
2020/05/18 Javascript
echarts实现获取datazoom的起始值(包括x轴和y轴)
2020/07/20 Javascript
Python NumPy库安装使用笔记
2015/05/18 Python
python实现数据导出到excel的示例--普通格式
2018/05/03 Python
解决Python内层for循环如何break出外层的循环的问题
2019/06/24 Python
通过PHP与Python代码对比的语法差异详解
2019/07/10 Python
django 实现将本地图片存入数据库,并能显示在web上的示例
2019/08/07 Python
pandas和spark dataframe互相转换实例详解
2020/02/18 Python
Python CSS选择器爬取京东网商品信息过程解析
2020/06/01 Python
python让函数不返回结果的方法
2020/06/22 Python
Python如何使用ConfigParser读取配置文件
2020/11/12 Python
html5实现canvas阴影效果示例
2014/05/07 HTML / CSS
性能服装:HYLETE
2018/08/14 全球购物
DNA测试:Orig3n
2019/03/01 全球购物
如何整合JQuery和Prototype
2014/01/31 面试题
党课知识竞赛主持词
2014/04/01 职场文书
毕业大学生自荐信
2014/06/17 职场文书
现货白银电话营销话术
2015/05/29 职场文书
个人合作协议范本
2015/08/06 职场文书
化工生产实习心得体会
2016/01/22 职场文书
使用Docker容器部署rocketmq单机的全过程
2022/04/03 Servers