可变参数

顾名思义,函数的可变参数是传入的参数可以变化的,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) 表达。

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

python 可变参数 关键字参数_Python关键字及可变参数*args,**kw原理解析相关推荐

  1. python中for循环流程图_Python While循环语句实例演示及原理解析

    这篇文章主要介绍了Python While循环语句实例演示及原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Python 编程中 while ...

  2. python中关键字参数的特点_Python中的*可变参数与**关键字参数

    1.定义了一个需要两个参数的函数 def print_str(first, second): print first print second if __name__ == "__main_ ...

  3. python中result函数用法_python中函数的参数和返回值

    函数 目标 函数参数和返回值的作用 函数的返回值 进阶 函数的参数 进阶 递归函数 01. 函数参数和返回值的作用 函数根据 有没有参数 以及 有没有返回值,可以 相互组合,一共有 4 种 组合形式 ...

  4. python语言关键字是_Python 关键字

    1 Python 关键字概述 Python 关键字(或称 保留字)指的是 Python 语言中一些已经被赋予特定意义的单词. 也属于是标识符,但是不能被用作普通标识符. 以下标识符被作为 Python ...

  5. python语言关键字是_Python 关键字和标识符

    Python 关键字和标识符 在本教程中,您将了解关键字(Python中的保留字)和标识符(变量.函数等的名称). Python关键字 关键字是Python中的保留字. 我们不能将关键字用作 变量名, ...

  6. python list是不可变的数据类型吗_python中不可变数据类型和可变数据类型

    1.名词解释 以下所有的内容都是基于内存地址来说的. 不可变数据类型: 当该数据类型的对应变量的值发生了改变,那么它对应的内存地址也会发生改变,对于这种数据类型,就称不可变数据类型. 可变数据类型 : ...

  7. python集合可以修改吗_python集合是可变的吗

    集合是一个无序的可变的序列.集合中的元素必须是可hash的,即不可变的数据类型. 空集合a=set() 注意a={}创建的是一个空字典. set -- 可变集合.集合中的元素可以动态的增加或删除. f ...

  8. python解析原理_Python 中 -m 的典型用法、原理解析与发展演变

    在命令行中使用 Python 时,它可以接收大约 20 个选项(option),语法格式如下: python [-bBdEhiIOqsSuvVWx?] [-c command | -m module- ...

  9. python变量后面加星号_Python开发中关于参数使用的几点建议 -- 1

    减少使用位置参数 使用可选参数(*args)可以使方法看起来更清晰,减少视觉噪音.例如,你想要记录一些代码调试信息,如果使用固定参数,那么你的方法可能就像下面的示例一样接收两个参数: 如果你在调用这个 ...

最新文章

  1. 什么是物联网网关?物联网网关具备什么功能?_转
  2. dataTable 表格组件刷新 问题记录
  3. Soul网关发布2.2.0:让高性能网关变得如此简单!
  4. clip\_gradient
  5. 玩转oracle 11g(40):Oracle11g 不区分大小写设定
  6. android平板截屏方法,Android 各种截屏方法
  7. 全面讲解OpenStack技术知识
  8. 记忆测试系统c语言,c语言重点回忆
  9. EBT 道客巴巴的加密与破解 -免费下载器的基础
  10. C语言有负号的除法以及求余运算规则
  11. 邮件该如何发送html代码
  12. 思岚S2激光雷达1—初次连接
  13. PS CS6启动“不能打开暂存盘文件”的解决方法
  14. HDU 6184 Counting Stars 经典三元环计数
  15. 自动升级Notes客户机AUT功能实战
  16. C++学习笔记:fstream,ifstream和oftream的区别
  17. 解决线上概率性异常 TransactionTooLargeException
  18. docker中的rabbitmq经常莫名其妙的退出
  19. React报错:Warning: ReactDOM.render is no longer supported in React 18. Use createRoot instead. Until y
  20. 【Vim】将Cpas_Lock 与 Esc 键进行互换

热门文章

  1. JavaScript面向对象精要(一)
  2. SqlServer 跨服务器查询
  3. hdu_5701_中位数计数
  4. ASP.NET MVC雕虫小技 1-2
  5. MySQL MySQL为什么有时候会选错索引?
  6. 如何选专业选课题?姚期智院士:首先成为一名科学家
  7. 数据挖掘 概念与技术(原书第3版)
  8. strlen 与 sizeof 的区别详解
  9. 架构 php_十年PHP架构师的成长之路,程序员必备
  10. xray 被动_长亭xray:一款自动化Web漏洞扫描神器(免费社区版)