基于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 相关文章推荐
wxPython框架类和面板类的使用实例
Sep 28 Python
python装饰器实例大详解
Oct 25 Python
详解python使用pip安装第三方库(工具包)速度慢、超时、失败的解决方案
Dec 02 Python
对Python中DataFrame选择某列值为XX的行实例详解
Jan 29 Python
Python实现微信自动好友验证,自动回复,发送群聊链接方法
Feb 21 Python
python3爬虫学习之数据存储txt的案例详解
Apr 24 Python
python按比例随机切分数据的实现
Jul 11 Python
Python Celery多队列配置代码实例
Nov 22 Python
如何在Windows中安装多个python解释器
Jun 16 Python
Python with语句用法原理详解
Jul 03 Python
pytorch中的numel函数用法说明
May 13 Python
教你用Python matplotlib库制作简单的动画
Jun 11 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
PHP5 字符串处理函数大全
2010/03/23 PHP
php+mysql 实现身份验证代码
2010/03/24 PHP
PHP-Fcgi下PHP的执行时间设置方法
2013/08/02 PHP
百度工程师讲PHP函数的实现原理及性能分析(一)
2015/05/13 PHP
PHP使用PDO 连接与连接管理操作实例分析
2020/04/21 PHP
基于jQuery实现的水平和垂直居中的div窗口
2011/08/08 Javascript
jQuery.prototype.init选择器构造函数源码思路分析
2013/02/05 Javascript
Javascript实现禁止输入中文或英文的例子
2014/12/09 Javascript
使用jQuery实现更改默认alert框体
2015/04/13 Javascript
JS制作类似选项卡切换的年历
2016/12/03 Javascript
微信小程序 request接口的封装实例代码
2017/04/26 Javascript
详解基于webpack搭建react运行环境
2017/06/01 Javascript
React Native之ListView实现九宫格效果的示例
2017/08/02 Javascript
javascript数组常见操作方法实例总结【连接、添加、删除、去重、排序等】
2019/06/13 Javascript
微信小程序批量监听输入框对按钮样式进行控制的实现代码
2019/10/12 Javascript
[20:57]Ti4主赛事第三天开幕式
2014/07/21 DOTA
[38:32]完美世界DOTA2联赛循环赛 Forest vs DM 第二场 11.06
2020/11/06 DOTA
[01:08:24]DOTA2-DPC中国联赛 正赛 RNG vs Phoenix BO3 第一场 2月5日
2021/03/11 DOTA
python使用reportlab实现图片转换成pdf的方法
2015/05/22 Python
Python正则表达式匹配和提取IP地址
2019/06/06 Python
使用django和vue进行数据交互的方法步骤
2019/11/11 Python
django为Form生成的label标签添加class方式
2020/05/20 Python
python实现excel公式格式化的示例代码
2020/12/23 Python
利用Storage Event实现页面间通信的示例代码
2018/07/26 HTML / CSS
荷兰男士时尚网上商店:Suitable
2017/12/25 全球购物
师范生自我鉴定
2014/03/20 职场文书
党课知识竞赛主持词
2014/04/01 职场文书
入股协议书
2014/04/14 职场文书
《祁黄羊》教学反思
2014/04/22 职场文书
活动总结的格式
2014/05/07 职场文书
实验心得体会
2014/09/05 职场文书
幼儿园六一儿童节演讲稿
2015/03/19 职场文书
2015年综治宣传月活动总结
2015/03/25 职场文书
物流仓管员岗位职责
2015/04/01 职场文书
培训督导岗位职责
2015/04/10 职场文书
五年级作文之劳动作文
2019/11/12 职场文书