定义函数的时候,在参数前加了一个 * 号,函数可以接收零个或多个值作为参数。返回结果是一个元组。

传递零个参数时函数并不报错,而是返回一个空元组。但以上这种方法也有局限性,它不能收集关键字参数。

对关键字参数进行收集的另一种 收集参数 机制:使用两个星号 ( ** ) ,用法同上。最后返回一个以参数名为键、参数值为键值的字典。

***是可以一起使用的,返回特定的结果。

参数收集的用处之一是使我们编写函数时不用头疼将 N 多个参数都塞在一个括号里,既美观又省事。用处之二便是:

  • *:可以将一系列值存放进一个元组变量里,可用该元组变量名加一个 * 号作为参数传递给一个正被调用的函数,而后该函数就可以自由地对这些值进行一系列合法的操作。

  • **:同理,只不过变量存放的方式是字典。

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def foo(*param):print(param)def foo_1(**param):print(param)
def foo_2(*param1, **param2):print(param1)print(param2)if __name__ == '__main__':foo(1,2,3,4)   # (1, 2, 3, 4)foo_1(a = 1, b=2, c=3, d=4) # {'a': 1, 'b': 2, 'c': 3, 'd': 4}foo_2(6,7,8, m = 9, n = 10) # (6, 7, 8) {'m': 9, 'n': 10}

Python的4种传值的方式,必选传参 func(param)、默认传参func(param=value)、可选传参func(*param)、关键字传参func(**param)

必选参数 func(param):

定义函数时的参数个数,顺序已定义好,在调用函数调时的参数个数、顺序必须一致,不能多,也不能少,也不能乱(和之前的顺序一致),因此叫必选参数,这是最常用的传参方式

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def test(param1,param2,param3):print param1,param2,param3test(1,"hello",True)test(True,1,"hello")

执行结果:

1 hello TrueTrue 1 hello

默认参数func(param=value):

# 1、定义函数时,已为参数设定一个默认值,假如调用函数时不传参,在函数内部使用参数时的值则为默认值,传参时则和必选参数一样使用# 2、如果必选参数和默认参数同时存在,则默认参数必须跟在必选参数后面# 3、如果有多个默认参数,调用时顺序可以不一致,但是必须要显式表明是哪个默认参数,例如 param2=100,但是建议统一按照函数定义的顺序进行使用def test(param1,param2=100,param3=True):print param1,param2,param3 test(1)# 默认参数可以不传 test(1,"hello",False)# 多个默认参数时,调用顺序一致 test(1,param3=False,param2="hello")# 调用顺序也可以不一致

执行结果:

1 100 True1 hello False1 hello False

Python 中函数的 收集参数 机制相关推荐

  1. python收集参数_Python 中函数的 收集参数 机制

    定义函数的时候,在参数前加了一个 * 号,函数可以接收零个或多个值作为参数.返回结果是一个元组. 传递零个参数时函数并不报错,而是返回一个空元组.但以上这种方法也有局限性,它不能收集关键字参数. 对关 ...

  2. Python之函数的收集参数和分配参数用法(‘*’ 和 ‘**’)

    前言 学过 C 或 C++的童鞋看到'*'的第一反应就是"指针",继而在学习 Python 的时候,也看到同样的星号,本以为对这家伙很熟悉,不过,真正了解 Python 中的&qu ...

  3. python中函数的可变参数_简单谈谈Python中函数的可变参数

    前言 在Python中定义函数,可以用必选参数.默认参数.可变参数和关键字参数,这4种参数都可以一起使用,或者只用其中某些,但是请注意,参数定义的顺序必须是:必选参数.默认参数.可变参数和关键字参数. ...

  4. python中函数的可变参数_Python中函数的参数定义和可变参数

    转自:http://www.cnblogs.com/tqsummer/archive/2011/01/25/1944416.html 刚学用Python的时候,特别是看一些库的源码时,经常会看到fun ...

  5. python中函数不包括参数函数二阶导数公式_请问参数方程确定的函数的二阶导数公式的详细推导过程?...

    展开全部 y''=d(dy/dx)/dx=[d(dy/dx)/dt]*(dt/dx) 因变量由y换作dy/dx,自变量还是62616964757a686964616fe58685e5aeb931333 ...

  6. python中函数不包括参数函数二阶导数公式_参数方程的二阶导数怎么求????...

    展开全部 设参数方程 x(t), y(t),则二阶导数: 一阶32313133353236313431303231363533e4b893e5b19e31333431373836导数是自变量的变化率, ...

  7. python中函数的可变参数解析

  8. html绑定带有形参的函数,Python中函数参数类型和参数绑定

    参数类型 Python函数的参数类型一共有五种,分别是: POSITIONAL_OR_KEYWORD(位置参数或关键字参数) VAR_POSITIONAL(可变参数) KEYWORD_ONLY(关键字 ...

  9. python中什么是可变参数_详解Python的三种可变参数

    详解Python的三种可变参数 可变参数 可变参数应该最简单,在C/C++和Java等语言中都有,就是用*号来表示,例如 def testArg(*arg) 你可以传入任意多个元素(包括0)到参数中, ...

最新文章

  1. 关于Android学习
  2. 踏青赏花正当时-北京大觉寺游记图
  3. 关于linux下用户不能使用tab补全处理
  4. Node.js—简介
  5. linux怎么进入字符命令界面,如何进入CentOS字符界面及窗口模式
  6. 源码 连接mysql_MySql轻松入门系列————第一站 从源码角度轻松认识mysql整体框架图...
  7. c语言多个形参,C中子函数最多有几个形参
  8. c语言方向变量,C语言,变量与内存
  9. 大佬谈:英伟达、咪咕、赛迪共谈技术如何颠覆未来市场
  10. 怎样通过vb设置透视表多项选择_四个操作带你玩转数据透视表,秒杀Excel函数,提升你的工作效率...
  11. 2 环境设置_用友U8V10.1安装(Windows 7环境)
  12. BOOST库介绍(四)——文件系统相关
  13. 读取Flash w25x64未响应 导致卡死的问题
  14. 【Flutter从入门到实战】⑰Flutter的主题风格、Theme、DarkTheme暗黑模式、单独给单个页面设置Theme、屏幕适配、屏幕适配工具类封装、Flutter调试使用
  15. java控制浏览器,java控制夜神访问浏览器
  16. 聊一聊关于“元宇宙”涉及的前端技术
  17. Windows7orServer2008安装VM-Tools
  18. 吉林大学计算机学院杜天宇,2016年全国研究生数学建模竞赛获奖名单
  19. 摄影常用词:光圈、快门、曝光、底片、ISO、焦距、景深
  20. Angular实现数据双向绑定

热门文章

  1. C语言精要总结-指针系列(二)
  2. 《JavaScript入门经典(第6版)》——2.7 问答
  3. collection的iterator()方法
  4. pdns 错误解决[备忘]
  5. java 语言概述(零)
  6. MongoDB入门简单介绍
  7. java 获取当月第一天和最后一天 获取前一个月第一天和最后一天
  8. chrome ui源码剖析-Accelerator(快捷键)
  9. 汉诺塔--(数据结构)
  10. 正则表达式,VI,SED及shell编程2010-12-05