Коробка с питоном
Ссылка
нажмите — покажем
нажмите — покажем
Сегодня у нас простенькая задачка, а то пятница, все отдыхать хотят, я понимаю.
Есть следующий код:
def test():
try:
return 1
finally:
return 2
Вопрос - что вернется при вызове test()? Все и так на этом моменте понимают, что вернётся 2 (ну не просто так же мы собрались, верно?), но почему?
Ответ, как обычно, есть в документации. Возвращаемое функцией значение определяется последним выполненным return.
Вторым важным аспектом является то, что finally исполняется всегда, поэтому мы и получаем его return.
raise, кстати, тоже работать не будет:
def test():
try:
raise ValueError()
finally:
return 3
test() # 3
#std #задачки
5 · 983 ·