|
发表于 2023-4-13 19:22:01
|
显示全部楼层
本楼为最佳答案
本帖最后由 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。 |
|