首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从一个函数返回多个值的最佳方式是什么?

从一个函数返回多个值的最佳方式是什么?
EN

Stack Overflow用户
提问于 2008-09-01 22:01:02
回答 6查看 78.4K关注 0票数 76

我有一个函数,我需要对字符串做一些操作。我需要函数返回一个指示操作是否成功的布尔值,我还需要返回修改后的字符串。

在C#中,我会对字符串使用out参数,但在Python语言中没有对应的参数。我仍然是Python的新手,我唯一能想到的就是返回一个包含布尔值和修改后的字符串的元组。

相关问题:

一个函数返回多个值是pythonic吗?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2008-09-01 22:04:03

代码语言:javascript
复制
def f(in_str):
    out_str = in_str.upper()
    return True, out_str # Creates tuple automatically

succeeded, b = f("a") # Automatic tuple unpacking
票数 134
EN

Stack Overflow用户

发布于 2008-09-01 22:09:00

如果操作没有成功,为什么不抛出异常呢?就我个人而言,我倾向于认为,如果你需要从一个函数返回多个值,你应该重新考虑你是以正确的方式做事情还是使用对象。

但更直接的是,如果你抛出一个异常,你就是在强迫他们处理问题。如果您尝试返回一个指示失败的值,则很可能有人无法检查该值,并最终出现一些潜在的难以调试的错误。

票数 30
EN

Stack Overflow用户

发布于 2008-09-01 22:03:41

返回一个元组。

代码语言:javascript
复制
def f(x):
    # do stuff
    return (True, modified_string)

success, modified_string = f(something)
票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档