尝试除了不必要的步骤

时间:2013-07-12 12:21:58

标签: python performance try-except

使用hello2而不是hello1是否总是安全的?

def hello1():
    try:
        aaa = foo()
        return aaa
    except baz:
        return None   

def hello2():
    try:
        return foo()
    except baz:
        return None   

2 个答案:

答案 0 :(得分:11)

是的,是的。

首先分配然后返回在捕获异常方面没有区别。 aaa的分配完全是多余的。

答案 1 :(得分:2)

是的,根本没有任何区别。您可能的异常来源是foo()函数,无论如何都要在两个程序中调用它。将其输出分配给aaa不会改变任何东西,因为异常将在分配期间调用foo()时发生(无论如何都位于try块中)。