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 相关文章推荐
pycharm 使用心得(五)断点调试
Jun 06 Python
Python创建日历实例
Aug 21 Python
Python性能提升之延迟初始化
Dec 04 Python
tf.truncated_normal与tf.random_normal的详细用法
Mar 05 Python
Python3多线程操作简单示例
May 22 Python
python3实现基于用户的协同过滤
May 31 Python
Python3多进程 multiprocessing 模块实例详解
Jun 11 Python
对python的unittest架构公共参数token提取方法详解
Dec 17 Python
Django中在xadmin中集成DjangoUeditor过程详解
Jul 24 Python
Python实现微信小程序支付功能
Jul 25 Python
基于python中__add__函数的用法
Nov 25 Python
Python re.sub 反向引用的实现
Jul 07 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
使用XDebug调试及单元测试覆盖率分析
2011/01/27 PHP
PHP Class&amp;Object -- 解析PHP实现二叉树
2013/06/25 PHP
Laravel5权限管理方法详解
2016/07/26 PHP
PHP实现的同步推荐操作API接口案例分析
2016/11/30 PHP
学习thinkphp5.0验证类使用方法
2017/11/16 PHP
PHP抽象类与接口的区别实例详解
2019/05/09 PHP
Laravel5.5 实现后台管理登录的方法(自定义用户表登录)
2019/09/30 PHP
js innerHTML 的一些问题的解决方法
2008/06/22 Javascript
JS 实现导航栏悬停效果(续2)
2013/09/24 Javascript
通过length属性判断jquery对象是否存在
2013/10/18 Javascript
jQuery中的pushStack实现原理和应用实例
2015/02/03 Javascript
jquery中validate与form插件提交的方式小结
2016/03/26 Javascript
详解利用 Vue.js 实现前后端分离的RBAC角色权限管理
2017/09/15 Javascript
vue基础之模板和过滤器用法实例分析
2019/03/12 Javascript
javascript实现小型区块链功能
2019/04/03 Javascript
vue中touch和click共存的解决方式
2020/07/28 Javascript
原生js实现贪吃蛇游戏
2020/10/26 Javascript
python实现人人网登录示例分享
2014/01/19 Python
Windows上配置Emacs来开发Python及用Python扩展Emacs
2015/11/20 Python
Python的requests网络编程包使用教程
2016/07/11 Python
详解Python:面向对象编程
2019/04/10 Python
python retrying模块的使用方法详解
2019/09/25 Python
python设置中文界面实例方法
2020/10/27 Python
Python中Pyspider爬虫框架的基本使用详解
2021/01/27 Python
CSS3实现鼠标悬停显示扩展内容
2016/08/24 HTML / CSS
Club Monaco加拿大官网:设计师男女服装
2019/09/29 全球购物
酒吧总经理岗位职责
2013/12/10 职场文书
音乐学专业求职信
2014/07/22 职场文书
先进班集体申报材料
2014/12/26 职场文书
学校会议通知范文
2015/04/15 职场文书
2015年女职工工作总结
2015/05/15 职场文书
门卫管理制度范本
2015/08/05 职场文书
2021年最新用于图像处理的Python库总结
2021/06/15 Python
MySQL数据库 任意ip连接方法
2022/05/20 MySQL
oracle数据库去除重复数据
2022/05/20 Oracle
CSS使用SVG实现动态分布的圆环发散路径动画
2022/12/24 HTML / CSS