Python 异常的小问题
try 中的 return True 有语法错误吗? 为啥结果只返回了False 没有返回True啊 本帖最后由 isdkz 于 2023-4-13 19:25 编辑你好!try中的return True语法本身是没有问题的。然而,在你的例子中,finally语句块也包含了一个return语句。这就导致了bool_return()函数总是返回False。
当try和finally语句都有return语句时,Python的执行逻辑是这样的:
[*]首先,执行try语句块中的代码。在你的例子中,这意味着执行return True。这时,Python会计算并准备返回True。
[*]然后,无论try语句块中是否发生异常,Python都会执行finally语句块中的代码。在你的例子中,这意味着执行return False。
[*]在执行完finally语句块后,Python将返回finally语句块中的值(即False),而不是try语句块中的值(即True)。因此,bool_return()函数总是返回False。
为了让你的函数在不同情况下返回True或False,你可以尝试以下方式:
def bool_return():
try:
# 这里放可能会抛出异常的代码
return True
except:
# 这里处理异常,例如打印错误信息
return False
这样,如果try语句块中的代码成功执行,函数将返回True。如果发生异常,函数将执行except语句块并返回False。 finally是一定会执行的语句 同问:
def func():
try:
print("heres try")
return "try"
print("try done")
finally:
print("finally")
return "finally"
print("finally done")
print("res:", func())
heres try
finally
res: finally 歌者文明清理员 发表于 2023-4-13 19:28
同问:
你这个和我的问题是一样的,isdkz解释了。就是说try里面的内容没有错,但是finally:的内容必须要执行,如果return 在 try里面被执行了,这个函数的调用就结束,不会执行finally里面的内容
页:
[1]