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

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

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

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

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

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

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

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): # 1、定义函数时的参数个数,顺序已定义好,在调用函数调时的参数个数、顺序必须一致,不能多,也不能少,也不能乱(和之前的顺序一致),因此叫必选参数,这是最常用的传参方式

def test(param1,param2,param3):

print param1,param2,param3

test(1,"hello",True)

test(True,1,"hello")

执行结果:

1 hello True

True 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 True

1 hello False

1 hello False

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

  1. python函数可变参数_python中函数的可变参数

    知识回顾: 1.函数关键字参数 2.函数的参数的默认值.必须从右边写到左边. 本节视频教程 文字教程开始: 一.[其实已经用过]可变参数 回顾系统自带的可变参数函数print #系统自带的可变参数函数 ...

  2. python函数默认参数_Python中函数的默认参数问题

    前几天,运营反馈了一个BUG,某些数据在写入数据库后,其时间字段出现异常,与当前时间相差较多. 由于代码是不是我写的,所以开始一遍阅读代码一遍排查问题. 在主流程中,仅仅发现了一个对时间赋值的语句,并 ...

  3. python可变参数和关键字参数位置_python中函数的默认参数和可变长参数如何排列?...

    参数在python中总是通过赋值进行传递的.在默认情况下,参数是通过其位置进行匹配的,从左到右,而且必须精确的传递和函数头部参数名一样多的参数. 这种默认的传递方式很简单 def f(a,b,c): ...

  4. python可变参数函数二阶导数公式_python中函数的可变参数

    简介 INTRODUCTION一.[其实已经用过]可变参数 二.可变参数+普通参数 结合用法1 三.知识要点总结强调 知识回顾: 1.函数关键字参数 2.函数的参数的默认值.必须从右边写到左边. 一. ...

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

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

  6. python中span函数_Python中函数定义及参数实例

    1.函数定义函数就是完成特定功能的一个语句组,这组语句可以作为一个单位使用,并且给它取一个名字 ,可以通过函数名在程序的不同地方多次执行(这通常叫函数调用) 预定义函数(可以直接使用) 自定义函数(自 ...

  7. python函数如何实现可变参数_python之函数定义可变参数(任意数量参数)

    原博文 2020-05-23 11:49 − python中函数可以定义任意数量的参数,即可变参数. 比如: def fun(*args): print args 在可变参数的名字前面加一个*号,即可 ...

  8. python求均方根_python中函数的均方根

    I want to calculate root mean square of a function in Python. My function is in a simple form like y ...

  9. python gc教程_python中的垃圾回收(GC)机制

    一.引用计数 Python 垃圾回收以引用计数为主,分代回收为辅.引用计数法的原理是每个对象维护一个ob_refcnt,用来记录对象被引用的次数,也就是用来追踪有多少个引用指向了对象,当发生以下四种情 ...

最新文章

  1. Linux系统性能分析: CPU
  2. PhpForm表单验证
  3. 揭穿骗子阴谋,学会保护自己
  4. 互动赠新书|当云原生遇到混合云:如何实现“求变”与“求稳”的平衡
  5. java中日期格式转换
  6. c语言求出字符串最长单词,C语言-获取字符串中最长的单词.doc
  7. CSDN-Markdown编辑器如何修改图像大小
  8. OLAP-druid-大数据Week13-DAY2-druid
  9. 编写hive udf函数
  10. 【STM32】使用ST-LINK V2下载程序
  11. TextView 倾斜属性
  12. linux 块设备 dm,[CentOS7]dm块设备删除
  13. Facebook改名,元宇宙非区块链不可
  14. Epicor客制化 - RowRule使用示例
  15. 二维码的使用(java版)
  16. python 基于xgboost预测波士顿房价
  17. python 查询周数 week number
  18. 华为电子邮件显示未读邮件1_您所说的话:如何使电子邮件垃圾邮件保持整洁...
  19. 沙盘游戏(2017绍兴市第十五届少儿信息学竞赛复赛试题)
  20. Java人脸识别登录Demo(人脸考勤系统)

热门文章

  1. java 集合初始化_6种方法初始化JAVA中的list集合
  2. 6467t 1080php,DM6467T开发板领航——开发环境的文件配置
  3. 后台cs代码控制html控件,cshtml中正则表达式使用后台代码
  4. C++传递数组给函数
  5. 几种特种印花方式简介
  6. oracle使用all关键字过滤,选择要进行过滤的抽样、线程、LWP 和 CPU
  7. 解决VS2019中.net core WPF 暂时无法使用 Designer 的临时方法
  8. 优化springboot
  9. thinkphp在IIS7.5+环境下部署出现的URL重写问题解决方法
  10. request 获取url