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中使用matplotlib模块绘制数据图的示例
May 04 Python
详解Django框架中用户的登录和退出的实现
Jul 23 Python
Python3.2模拟实现webqq登录
Feb 15 Python
python图片验证码生成代码
Jul 02 Python
python 打印对象的所有属性值的方法
Sep 11 Python
Django应用程序中如何发送电子邮件详解
Feb 04 Python
关于pip的安装,更新,卸载模块以及使用方法(详解)
May 19 Python
python数据封装json格式数据
Mar 04 Python
python实现爬取图书封面
Jul 05 Python
Django2.1.7 查询数据返回json格式的实现
Dec 29 Python
详解Python遍历列表时删除元素的正确做法
Jan 07 Python
python热力图实现简单方法
Jan 29 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中preg_match的isU代表什么意思
2015/10/01 PHP
PHP堆栈调试操作简单示例
2018/06/15 PHP
php将从数据库中获得的数据转换成json格式并输出的方法
2018/08/21 PHP
PHP xpath()函数讲解
2019/02/11 PHP
Thinkphp页面跳转设置跳转等待时间的操作
2019/10/16 PHP
用roll.js实现的图片自动滚动+鼠标触动的特效
2007/03/18 Javascript
addEventListener和attachEvent二者绑定的执行函数中的this不相同
2012/12/09 Javascript
Js 时间函数getYear()的使用问题探讨
2013/04/01 Javascript
js 图片随机不定向浮动的实现代码
2013/07/02 Javascript
JQuery中clone方法复制节点
2015/05/18 Javascript
深入解读JavaScript中的Hoisting机制
2015/08/12 Javascript
轻松学习jQuery插件EasyUI EasyUI创建树形菜单
2015/11/30 Javascript
CSS中position属性之fixed实现div居中
2015/12/14 Javascript
基于jQuery的checkbox全选问题分析
2016/11/18 Javascript
js字符串操作总结(必看篇)
2016/11/22 Javascript
深入理解js中的加载事件
2017/02/08 Javascript
深入理解Javascript箭头函数中的this
2017/02/13 Javascript
jQuery轻量级表单模型验证插件
2018/10/15 jQuery
关于JS解构的5种有趣用法
2019/09/05 Javascript
webpack 动态批量加载文件的实现方法
2020/03/19 Javascript
解决ant design vue中树形控件defaultExpandAll设置无效的问题
2020/10/26 Javascript
python中input()与raw_input()的区别分析
2016/02/27 Python
python中实现精确的浮点数运算详解
2017/11/02 Python
详解django+django-celery+celery的整合实战
2019/03/19 Python
Python 项目转化为so文件实例
2019/12/23 Python
伦敦香水公司:The London Perfume Company
2019/11/13 全球购物
UNIX文件系统常用命令
2012/05/25 面试题
怎样写留学自荐信
2013/11/11 职场文书
健康教育评估方案
2014/05/25 职场文书
2014派出所所长群众路线对照检查材料思想汇报
2014/09/18 职场文书
基层党支部整改方案
2014/10/25 职场文书
自愿离婚协议书范本
2015/01/26 职场文书
病危通知书样本
2015/04/17 职场文书
2016年小学感恩节活动总结
2016/04/01 职场文书
vue route新窗口跳转页面并且携带与接收参数
2022/04/10 Vue.js
使用Ajax实现无刷新上传文件
2022/04/12 Javascript