Python关键字及可变参数*args,**kw原理解析

 更新时间:2020年04月04日 09:48:00   作者:武科大许志伟  
这篇文章主要介绍了Python关键字及可变参数*args,**kw原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

可变参数

顾名思义,函数的可变参数是传入的参数可以变化的,1个,2个到任意个。当然可以将这些 参数封装成一个 list 或者 tuple 传入,但不够 pythonic。使用可变参数可以很好解决该问题,注意可变参数在函数定义不能出现在特定参数和默认参数前面,因为可变参数会吞噬掉这些参数。

def report(name, *grades):
  total_grade = 0
  for grade in grades:
    total_grade += grade
  print(name, 'total grade is ', total_grade)

定义了一个函数,传入一个参数为 name, 后面的参数*grades 使用了 * 修饰,表明该参数是一个可变参数,这是一个可迭代的对象。该函数输入姓名和各科的成绩,输出姓名和总共成绩。所以可以这样调用函数 report('Mike', 8, 9),输出的结果为 Mike total grade is 17, 也可以这样调用 report('Mike', 8, 9, 10),输出的结果为 Mike total grade is 27

关键字参数

关键字参数可以传入0个或者任意个含参数名的参数,这些参数名在函数定义中并没有出现,这些参数在函数内部自动封装成一个字典(dict).

def portrait(name, **kw):
  print('name is', name)
  for k,v in kw.items():
    print(k, v)

定义了一个函数,传入一个参数 name, 和关键字参数 kw,使用了 ** 修饰。表明该参数是关键字参数,通常来讲关键字参数是放在函数参数列表的最后。如果调用参数 portrait('Mike', age=24, country='China', education='bachelor') 输出:

name is Mike
age 24
country China
education bachelor

通过可变参数和关键字参数,任何函数都可以用 universal_func(*args, **kw) 表达。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • CentOS 7下安装Python 3.5并与Python2.7兼容并存详解

    CentOS 7下安装Python 3.5并与Python2.7兼容并存详解

    这篇文章主要给大家介绍了在CentOS 7下安装Python 3.5并与Python2.7兼容并存的相关资料,文中将安装步骤介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面跟着小编来一起学习学习吧。
    2017-07-07
  • Python判断列表是否已排序的各种方法及其性能分析

    Python判断列表是否已排序的各种方法及其性能分析

    这篇文章主要介绍了Python判断列表是否已排序的各种方法及其性能分析的相关资料,需要的朋友可以参考下
    2016-06-06
  • 如何在Python中将字符串转换为集合

    如何在Python中将字符串转换为集合

    这篇文章主要介绍了如何在Python中将字符串转换为集合,我们使用生成器表达式来迭代列表,并使用 int() 类将每个项目转换为整数,本文给大家介绍的非常详细,需要的朋友可以参考下
    2023-03-03
  • Django+Vue实现文件上传下载的项目实践

    Django+Vue实现文件上传下载的项目实践

    本文主要介绍了Django+Vue实现文件上传下载的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • Python实现的数据结构与算法之队列详解

    Python实现的数据结构与算法之队列详解

    这篇文章主要介绍了Python实现的数据结构与算法之队列,详细分析了队列的定义、功能与Python实现队列的相关技巧,以及具体的用法,需要的朋友可以参考下
    2015-04-04
  • Python实现最短路径问题的方法

    Python实现最短路径问题的方法

    本篇章主要介绍图的最短路径问题,包括Dijkstra算法和Floyd算法.并用Python代码实现,需要的朋友可以参考下
    2021-06-06
  • Python绘图系统之绘制散点图,极坐标和子图

    Python绘图系统之绘制散点图,极坐标和子图

    这篇文章主要为大家详细介绍了如何基于Python实现一个绘图系统,可以支持绘制散点图,极坐标和子图,文中的示例代码讲解详细,感兴趣的可以了解下
    2023-09-09
  • python密码学列置换密码学习

    python密码学列置换密码学习

    这篇文章主要为大家介绍了python密码学列置换密码学习的示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • Python pip 安装与使用(安装、更新、删除)

    Python pip 安装与使用(安装、更新、删除)

    pip 是 Python 包管理工具,该工具提供了对Python 包的查找、下载、安装、卸载的功能,需要的朋友可以参考下
    2019-10-10
  • Python 实操显示数据图表并固定时间长度

    Python 实操显示数据图表并固定时间长度

    这篇文章主要介绍了Python 实操显示数据图表并固定时间长度,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-08-08

最新评论