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实现对比两张图片的不同
Feb 05 Python
Matplotlib 生成不同大小的subplots实例
May 25 Python
详解用python写网络爬虫-爬取新浪微博评论
May 10 Python
python tkinter canvas使用实例
Nov 04 Python
python修改文件内容的3种方法详解
Nov 15 Python
哈工大自然语言处理工具箱之ltp在windows10下的安装使用教程
May 07 Python
TensorFlow中如何确定张量的形状实例
Jun 23 Python
python3 中时间戳、时间、日期的转换和加减操作
Jul 14 Python
Python如何读写CSV文件
Aug 13 Python
python爬取招聘要求等信息实例
Nov 20 Python
python math模块的基本使用教程
Jan 16 Python
Matplotlib可视化之添加让统计图变得简单易懂的注释
Jun 11 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中的Streams详细介绍
2014/11/12 PHP
PHP多线程之内部多线程实例分析
2015/03/09 PHP
ThinkPHP框架里隐藏index.php
2016/04/12 PHP
laravel 执行迁移回滚示例
2019/10/23 PHP
javascript hashtable实现代码
2009/10/13 Javascript
nodejs入门详解(多篇文章结合)
2012/03/07 NodeJs
javascript初学者常用技巧
2014/09/02 Javascript
不到30行JS代码实现Excel表格的方法
2014/11/15 Javascript
2014 HTML5/CSS3热门动画特效TOP10
2014/12/07 Javascript
javascript中in运算符用法分析
2015/04/28 Javascript
详解JavaScript中|单竖杠运算符的使用方法
2016/05/23 Javascript
使用jquery提交form表单并自定义action的实现代码
2016/05/25 Javascript
javascript 内置对象及常见API详细介绍
2016/11/01 Javascript
Angular2使用jQuery的方法教程
2017/05/28 jQuery
详解Angular-cli生成组件修改css成less或sass的实例
2017/07/27 Javascript
webpack源码之loader机制详解
2018/04/06 Javascript
vue cli3.0 引入eslint 结合vscode使用
2019/05/27 Javascript
[53:38]OG vs LGD 2018国际邀请赛淘汰赛BO3 第三场 8.26
2018/08/30 DOTA
python关键字and和or用法实例
2015/05/28 Python
python遍历文件夹,指定遍历深度与忽略目录的方法
2018/07/11 Python
Python使用try except处理程序异常的三种常用方法分析
2018/09/05 Python
PyQt5创建一个新窗口的实例
2019/06/20 Python
python获取点击的坐标画图形的方法
2019/07/09 Python
用60行代码实现Python自动抢微信红包
2021/02/04 Python
css3 实现元素弧线运动的示例代码
2020/04/24 HTML / CSS
欧舒丹俄罗斯官方网站:L’OCCITANE俄罗斯
2019/11/22 全球购物
会计职业生涯规划书
2014/01/13 职场文书
学术会议主持词
2014/03/17 职场文书
大学理论知识学习自我鉴定
2014/04/28 职场文书
商品陈列协议书
2014/09/29 职场文书
上课玩手机的检讨书
2014/10/01 职场文书
作风建设整改方案
2014/10/27 职场文书
归元寺导游词
2015/02/06 职场文书
喋血孤城观后感
2015/06/08 职场文书
学校运动会通讯稿
2015/07/18 职场文书
MySQL 执行数据库更新update操作的时候数据库卡死了
2022/05/02 MySQL