为了账号安全,请及时绑定邮箱和手机立即绑定

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

/ 猿问

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

沧海一幻觉 2019-11-15 13:08:40

我有一个函数,需要对字符串进行处理。我需要该函数返回一个布尔值,该布尔值指示操作是否成功,并且还需要返回修改后的字符串。


在C#中,我将对字符串使用out参数,但是Python中没有等效的参数。我对Python还是很陌生,我唯一想到的就是用布尔值和修改后的字符串返回一个元组。


查看完整描述

3 回答

?
动漫人物

def f(in_str):

    out_str = in_str.upper()

    return True, out_str # Creates tuple automatically


查看完整回答
反对 回复 2019-11-15
?
至尊宝的传说

如果操作失败,为什么不抛出异常?就个人而言,我倾向于认为,如果您需要从一个函数中返回多个值,则应该重新考虑是否以正确的方式执行操作或使用对象。

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


查看完整回答
反对 回复 2019-11-15
?
12345678_0001

为失败而引发异常是进行操作的一种好方法,如果返回许多不同的值,则可以返回一个元组。对于您所引用的特定情况,我经常采用一种中间方法:成功时返回修改后的字符串,失败时返回None。我有足够的未重组的C程序员想要在失败时返回指向char的NULL指针。

如果我正在编写一个例程,将其用作更大的库的一部分并由其他开发人员使用,则在失败时会抛出异常。当我吃自己的狗食时,我可能会返回不同类型的食物,并测试返回的食物。


查看完整回答
反对 回复 2019-11-15

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信