def func():
try:
return 123
finally:
return 321
print(func())#结果:321
def func():
try:
return 123
finally:
print(321)
print(func())#结果321 123
对上面折行有关try语句的代码的输出不是很理解?
def func():
try:
return 123
finally:
return 321
print(func())#结果:321
def func():
try:
return 123
finally:
print(321)
print(func())#结果321 123
对上面折行有关try语句的代码的输出不是很理解?
参考GPT和自己的思路:
这段代码包含两个函数,它们都使用了 try...finally 语句。try 子句用于包含可能发生异常的代码,而 finally 子句用于包含无论是否发生异常都必须执行的代码。
在第一个函数的 try 块中,因为没有发生异常,因此 return 语句被执行并返回了 123。但是在执行完 return 语句后,立即执行了 finally 子句中的 return 语句,从而导致函数返回了 321。因此,print(func()) 的输出结果是 321。
在第二个函数的 try 块中,同样执行了 return 123。但是,在执行完 return 语句后,又立即执行了 finally 子句中的 print 语句打印出 321。然后函数继续执行,返回了 123,从而导致 print(func()) 的输出结果是 321 123。