Python 尝试除不必要的步骤

Python 尝试除不必要的步骤,python,performance,try-except,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 def hello1(): 尝试: aaa=foo() 返回aaa 除baz外: 一无

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

def hello1(): try: aaa = foo() return aaa except baz: return None def hello2(): try: return foo() except baz: return None def hello1(): 尝试: aaa=foo() 返回aaa 除baz外: 一无所获 def hello2(): 尝试: 返回foo() 除baz外: 一无所获 是的


在捕获异常时,先分配然后返回并没有什么区别。对
aaa
的分配是完全冗余的。

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

Yup-如果在示例中发生异常,名称绑定无论如何也不会发生-因此,即使在ref计数中发生奇怪事情的可能性也不会降低