基于Python 中函数的 收集参数 机制


Posted in Python onDecember 21, 2019

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

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

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

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

参数收集的用处之一是使我们编写函数时不用头疼将 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 相关文章推荐
python实现从字典中删除元素的方法
May 04 Python
如何通过50行Python代码获取公众号全部文章
Jul 12 Python
分享PyCharm的几个使用技巧
Nov 10 Python
python实现差分隐私Laplace机制详解
Nov 25 Python
Pytorch 中retain_graph的用法详解
Jan 07 Python
你可能不知道的Python 技巧小结
Jan 29 Python
Pycharm和Idea支持的vim插件的方法
Feb 21 Python
Python基于Dlib的人脸识别系统的实现
Feb 26 Python
Python 解析简单的XML数据
Jul 24 Python
Python做图像处理及视频音频文件分离和合成功能
Nov 24 Python
Python读取pdf表格写入excel的方法
Jan 22 Python
python 实现IP子网计算
Feb 18 Python
Python3 解决读取中文文件txt编码的问题
Dec 20 #Python
python 类之间的参数传递方式
Dec 20 #Python
使用pyinstaller逆向.pyc文件
Dec 20 #Python
Python3 实现减少可调用对象的参数个数
Dec 20 #Python
python获取引用对象的个数方式
Dec 20 #Python
Python 获取命令行参数内容及参数个数的实例
Dec 20 #Python
python 读写文件包含多种编码格式的解决方式
Dec 20 #Python
You might like
把PHP安装为Apache DSO
2006/10/09 PHP
其他功能
2006/10/09 PHP
PHP base64+gzinflate压缩编码和解码代码
2008/10/03 PHP
PHP code 验证码生成类定义和简单使用示例
2020/05/27 PHP
javascript 跳转代码集合
2009/12/03 Javascript
jquery设置按钮停顿3秒不可用
2014/03/07 Javascript
JavaScript检查弹出窗口是否被阻拦的方法技巧
2015/03/13 Javascript
微信小程序 PHP生成带参数二维码
2017/02/21 Javascript
微信小程序canvas写字板效果及实例
2017/06/15 Javascript
解决npm管理员身份install时出现权限的问题
2018/03/16 Javascript
vue中v-cloak解决刷新或者加载出现闪烁问题(显示变量)
2018/04/20 Javascript
vue源码学习之Object.defineProperty 对数组监听
2018/05/30 Javascript
jQuery实现菜单的显示和隐藏功能示例
2018/07/24 jQuery
webuploader分片上传的实现代码(前后端分离)
2018/09/10 Javascript
前端面试知识点目录一览
2019/04/15 Javascript
js核心基础之构造函数constructor用法实例分析
2019/05/11 Javascript
Vue.js中该如何自己维护路由跳转记录
2019/05/19 Javascript
javascript 代码是如何被压缩的示例代码
2020/05/06 Javascript
JavaScript缺少insertAfter解决方案
2020/07/03 Javascript
python脚本监控docker容器
2016/04/27 Python
python根据url地址下载小文件的实例
2018/12/18 Python
使用Python实现Wake On Lan远程开机功能
2020/01/22 Python
size?丹麦官网:英国伦敦的球鞋精品店
2019/04/15 全球购物
Crocs波兰官方商店:女鞋、男鞋、童鞋、洞洞鞋
2019/10/08 全球购物
世界经理人咨询有限公司面试
2014/09/23 面试题
中专生自荐信
2013/10/12 职场文书
市场营销专业个人求职信范文
2013/12/14 职场文书
大型活动策划方案
2014/01/12 职场文书
文明餐桌活动方案
2014/02/11 职场文书
医院护士工作检讨书
2014/10/26 职场文书
幼师个人总结范文
2015/02/28 职场文书
2015年药店店长工作总结
2015/04/29 职场文书
商标侵权律师函
2015/05/27 职场文书
电影雷锋观后感
2015/06/10 职场文书
高中美术教学反思
2016/02/17 职场文书
Pytorch 如何实现常用正则化
2021/05/27 Python