当前位置:  开发笔记 > 编程语言 > 正文

从Python中的函数返回多个值的最佳方法是什么?

如何解决《从Python中的函数返回多个值的最佳方法是什么?》经验,为你挑选了4个好方法。

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

在C#中,我会为字符串使用out参数,但Python中没有等效参数.我仍然是Python的新手,我唯一能想到的是返回一个带有布尔值和修改后的字符串的元组.

相关问题:函数返回多个值是pythonic吗?



1> John Milliki..:
def f(in_str):
    out_str = in_str.upper()
    return True, out_str # Creates tuple automatically

succeeded, b = f("a") # Automatic tuple unpacking


我想补充一点,目前的方法也适用于数组和矩阵

2> Jason Baker..:

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

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


我不喜欢为非致命错误抛出异常的函数.
当故障很常见时,在元组中返回故障信息是一种很好的方法.示例将是一个函数,您使用测试值多次调用以查找"良好"值,您希望它多次失败并最终找到一个好的值.在这种情况下只是"返回结果,理由"而不是提出异常.

3> rmmh..:

返回一个元组.

def f(x):
    # do stuff
    return (True, modified_string)

success, modified_string = f(something)



4> Chris Upchur..:

返回元组是在Python中执行此操作的常用方法.

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有