Python函数返回不定数量的值方法


Posted in Python onJanuary 22, 2019

Python的函数是可以return多个值的,但其本质上还是返回单个值,只是利用了tuple的自动打包,将多个值打包成单个tuple返回。

使用代码验证:

def func_a():
 return 1, 2, 3, 4

if __name__ == '__main__':
 temp = func_a()
 print(type(temp))

运行结果,确认返回的是一个tuple,

<class 'tuple'>

稍微修改代码:

def func_a(*args):
 return 1, 2, 3, 4

if __name__ == '__main__':
 a, b, c, d = func_a()
 print(a, b, c, d)

代码中利用了tuple的自动解包,将tuple的值分别赋值给了a, b, c, d四个变量,实现返回多个值

既然知道实际上Python返回多个值的本质是返回tuple,再自动解包赋值给N个变量,那要实现返回任意多个值,只要手动返回一个tuple就可以了,tuple内元素的数量可以自定:

def func_a(*args):
 return tuple(arg * 2 for arg in args)

if __name__ == '__main__':
 a, b, c, d = func_a(1, 2, 3, 4)
 print(a, b, c, d)

代码中,将传入的参数值 x 2后,转换成tuple返回,再利用tuple的自动解包赋值给多个变量,从而实现函数返回不定数量的值。

这里需要注意,当返单个值时,不需要再手动返回一个tuple,所以修改代码如下:

def func_a(*args):
 temp = tuple(arg * 2 for arg in args)
 return temp if len(temp) > 1 else temp[0]

if __name__ == '__main__':
 a, b, c, d = func_a(1, 2, 3, 4)
 print(a, b, c, d)
 e = func_a('Hello')
 print(e)

以上这篇Python函数返回不定数量的值方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中第三方库Requests库的高级用法详解
Mar 12 Python
Python多进程multiprocessing用法实例分析
Aug 18 Python
利用Python查看目录中的文件示例详解
Aug 28 Python
Python分支结构(switch)操作简介
Jan 17 Python
Python实现的个人所得税计算器示例
Jun 01 Python
解决python3 pika之连接断开的问题
Dec 18 Python
python 文本单词提取和词频统计的实例
Dec 22 Python
Django中使用session保持用户登陆连接的例子
Aug 06 Python
Python安装依赖(包)模块方法详解
Feb 14 Python
详解Python 中的容器 collections
Aug 17 Python
5 分钟读懂Python 中的 Hook 钩子函数
Dec 09 Python
Django实现WebSocket在线聊天室功能(channels库)
Sep 25 Python
python实现转盘效果 python实现轮盘抽奖游戏
Jan 22 #Python
Python Pillow Image Invert
Jan 22 #Python
python 通过类中一个方法获取另一个方法变量的实例
Jan 22 #Python
对Python 获取类的成员变量及临时变量的方法详解
Jan 22 #Python
Python实现深度遍历和广度遍历的方法
Jan 22 #Python
Python遍历文件夹 处理json文件的方法
Jan 22 #Python
Python多线程原理与用法实例剖析
Jan 22 #Python
You might like
利用PHP制作简单的内容采集器的代码
2007/11/28 PHP
一致性哈希算法以及其PHP实现详细解析
2013/08/24 PHP
php将url地址转化为完整的a标签链接代码(php为url地址添加a标签)
2014/01/17 PHP
php常用文件操作函数汇总
2014/11/22 PHP
php文件类型MIME对照表(比较全)
2016/10/07 PHP
PHP PDOStatement::getColumnMeta讲解
2019/02/01 PHP
PHP crc32()函数讲解
2019/02/14 PHP
Yii框架学习笔记之应用组件操作示例
2019/11/13 PHP
javascript支持firefox,ie7页面布局拖拽效果代码
2007/12/20 Javascript
推荐40个非常优秀的jQuery插件和教程【系列三】
2011/11/09 Javascript
js使用removeChild方法动态删除div元素
2014/08/01 Javascript
Jquery easyui 实现动态树
2015/11/17 Javascript
BootStrap 超链接变按钮的实现方法
2016/09/25 Javascript
javascript阻止事件冒泡和浏览器的默认行为
2017/01/21 Javascript
React props和state属性的具体使用方法
2018/04/12 Javascript
layui 优化button按钮和弹出框的方法
2018/08/15 Javascript
Vue computed 计算属性代码实例
2020/04/22 Javascript
[00:32]2018DOTA2亚洲邀请赛Newbee出场
2018/04/03 DOTA
Python 过滤字符串的技巧,map与itertools.imap
2008/09/06 Python
python脚本实现数据导出excel格式的简单方法(推荐)
2016/12/30 Python
Python实现多线程HTTP下载器示例
2017/02/11 Python
python实现冒泡排序算法的两种方法
2018/03/10 Python
机器学习之KNN算法原理及Python实现方法详解
2018/07/09 Python
详解Python3.6的py文件打包生成exe
2018/07/13 Python
python实现银联支付和支付宝支付接入
2019/05/07 Python
深入浅析Python代码规范性检测
2020/07/31 Python
详解CSS3的opacity属性设置透明效果的用法
2016/05/09 HTML / CSS
HTML5中的进度条progress元素简介及兼容性处理
2016/06/02 HTML / CSS
印度婴儿用品在线商店:Firstcry.com
2016/12/05 全球购物
网络公司美工设计工作个人的自我评价
2013/11/03 职场文书
2015年国庆节慰问信
2015/03/23 职场文书
公司慰问信范文
2015/03/23 职场文书
初二物理教学反思
2016/02/19 职场文书
详解CocosCreator消息分发机制
2021/04/16 Javascript
十大最强电系宝可梦,阿尔宙斯电系之一,第七被称为雷神
2022/03/18 日漫
Pytorch中使用ImageFolder读取数据集时忽略特定文件
2022/03/23 Python