其中哪些方法是在python中返回的正确方法?

问题描述 投票:1回答:4

我有两个函数,它们基本上执行相同的操作,但是在发生异常的情况下返回不同。首选哪一种方法?

方法1:

def f1():
    try:
        data = some_random_function()
        return data["success"]
    except Exception as error:
        print(error)
        return "failure"

方法2:

def f2():
    try:
        data = some_random_function()
        return data["success"]
    except Exception as error:
        print(error)
    return "failure"
python
4个回答
1
投票

尽管两种方法的工作方式相同,即在无异常代码的情况下为return data["success"],否则为return "failure",但这两种方法在传递信息的方式上是不同的:

A1-发生异常时返回“失败”

A2-返回“失败”作为默认返回值。

所以,我建议您使用第二种方法,因为它更加清晰明了。


2
投票

尽管这两种方法是等效的,但我还是建议使用方法1。这更加清楚地表明,只有在出现异常时才返回“失败”。某些阅读方法2可能会给人留下第一印象,即它总是返回“失败”。严格来说,这是从干净的代码角度来看的。


1
投票

由于您具有通用的错误汇总功能,因此两种方法都是等效的,因为在发生异常的情况下,您将输入print "failure"分支。

我想这取决于口味和将来的可维护性,即,当您添加更多的except分支以不同方式处理一些错误时,选择方法2。


1
投票

这完全取决于个人喜好。对我来说,方法1比两种方法清晰得多,但两者都是很好的解决方案。我认为它不仅是个人喜好,而且是您正在使用的更多代码库。如果您与团队合作,请研究结构相似的代码,看看其他人做了什么。统一的代码库比在这里和那里的花哨的代码有价值得多。

此外,对于具有功能范围的JavaScriptpython之类的语言,我想提出第三个选择:

def f3():
    try:
        data = some_random_function()
        message = "success"
    except Exception as error:
        print(error)
        message = "failure"
    return message

© www.soinside.com 2019 - 2024. All rights reserved.