栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python如何从函数返回多个值?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python如何从函数返回多个值?

由于return语句中

getName
指定了 多个元素

def getName(self):   return self.first_name, self.last_name

Python将返回一个基本上包含它们的容器对象。

在这种情况下,返回以 逗号分隔一组 元素会创建 一个元组 。多个值 只能在容器内返回

让我们使用一个返回多个值的简单函数:

def foo(a, b):    return a, b

您可以查看使用

dis.dis
,Python字节码的反汇编程序生成的字节码。对于不带括号的逗号分隔值,它看起来像这样:

>>> import dis>>> def foo(a, b):...     return a,b        >>> dis.dis(foo)  20 LOAD_FAST     0 (a)   3 LOAD_FAST     1 (b)   6 BUILD_TUPLE   2   9 RETURN_VALUE

如您所见,值首先使用加载到内部堆栈中

LOAD_FAST
,然后生成一个
BUILD_TUPLE
(抓住
2
放置在堆栈上的先前元素)。由于存在逗号,Python知道创建一个元组。

您也可以使用来指定其他返回类型,例如列表

[]
。对于这种情况,
BUILD_LIST
将按照与元组等效的相同语义发布a :

>>> def foo_list(a, b):...     return [a, b]>>> dis.dis(foo_list)  20 LOAD_FAST     0 (a)   3 LOAD_FAST     1 (b)   6 BUILD_LIST    2   9 RETURN_VALUE

返回的对象的类型实际上取决于方括号的存在(

()
如果至少有一个逗号,则可以省略元组)。
[]
创建列表和
{}
集合。字典需要
key:val
成对。

总而言之, 返回一个实际对象 。如果该对象是容器类型,则它可以包含多个值,给人以返回多个结果的印象。然后,通常的方法是直接解压缩它们:

>>> first_name, last_name = f.getName()>>> print (first_name, last_name)

除此之外,您的Java方式正泄漏到Python中:-)

在Python中编写类时不要使用getter,请使用

properties



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/516865.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号