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生成器generator之next和send的运行流程(详解)
May 08 Python
简单谈谈python中的语句和语法
Aug 10 Python
Python numpy 常用函数总结
Dec 07 Python
pygame游戏之旅 添加碰撞效果的方法
Nov 20 Python
Django MEDIA的配置及用法详解
Jul 25 Python
Pytorch Tensor基本数学运算详解
Dec 30 Python
python使用正则表达式(Regular Expression)方法超详细
Dec 30 Python
pygame用blit()实现动画效果的示例代码
May 28 Python
Python爬虫后获取重定向url的两种方法
Jan 19 Python
python数据分析之用sklearn预测糖尿病
Apr 22 Python
Python源码解析之List
May 21 Python
python之django路由和视图案例教程
Jul 26 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
php5.4以下版本json不支持不转义内容中文的解决方法
2015/01/13 PHP
php结合安卓客户端实现查询交互实例
2015/05/05 PHP
PHP批量获取网页中所有固定种子链接的方法
2016/11/18 PHP
jquery实现居中弹出层代码
2010/08/25 Javascript
基于jquery的监控数据是否发生改变
2011/04/11 Javascript
javascript 事件处理程序介绍
2012/06/27 Javascript
JavaScript bold方法入门实例(把指定文字显示为粗体)
2014/10/17 Javascript
Javascript中神奇的this
2016/01/20 Javascript
javascript每日必学之基础入门
2016/02/16 Javascript
easyui window refresh 刷新两次的解决方法(推荐)
2016/05/18 Javascript
jQuery包裹节点用法完整示例
2016/09/13 Javascript
js实现楼层导航功能
2017/02/23 Javascript
详解React-Native全球化多语言切换工具库react-native-i18n
2017/11/03 Javascript
vue 表单输入格式化中文输入法异常问题
2018/05/30 Javascript
jsonp跨域获取数据的基础教程
2018/07/01 Javascript
Node.js JSON模块用法实例分析
2019/01/04 Javascript
python基于右递归解决八皇后问题的方法
2015/05/25 Python
Python编程argparse入门浅析
2018/02/07 Python
Python selenium根据class定位页面元素的方法
2019/02/26 Python
Pytorch 搭建分类回归神经网络并用GPU进行加速的例子
2020/01/09 Python
python实现百度OCR图片识别过程解析
2020/01/17 Python
Pytorch 计算误判率,计算准确率,计算召回率的例子
2020/01/18 Python
Django websocket原理及功能实现代码
2020/11/14 Python
关于django python manage.py startapp 应用名出错异常原因解析
2020/12/15 Python
CSS3 translate导致字体模糊的实例代码
2019/08/30 HTML / CSS
美国一家专业的太阳镜网上零售商:Solstice太阳镜
2016/07/25 全球购物
Aeropostale官网:美国著名校园品牌及青少年服饰品牌
2019/03/21 全球购物
商业活动邀请函
2014/02/04 职场文书
捐款倡议书
2014/04/14 职场文书
诉前财产保全担保书
2014/05/20 职场文书
房屋分割离婚协议书范本
2014/12/01 职场文书
2014年体育教师工作总结
2014/12/03 职场文书
2015年清明节网上祭英烈留言寄语
2015/03/04 职场文书
感恩教育主题班会
2015/08/12 职场文书
《实心球》教学反思
2016/02/23 职场文书
演讲稿之感恩老师(三篇范文)
2019/09/06 职场文书