What will be the output of the following Python code?
def foo():
try:
return 1
finally:
return 2
k = foo()
print(k)
def foo():
try:
return 1
finally:
return 2
k = foo()
print(k)A. error, there is more than one return statement in a single try-finally block
B. 3
C. 2
D. 1
Answer: Option C
Solution (By Examveda Team)
In the given code, the functionfoo() is defined.Inside the function, there is a
try-finally block.In the
try block, return 1 is encountered.However, before returning, the
finally block executes, which contains return 2.As per the behavior of
finally, it always executes, regardless of whether there is an exception or not.Therefore, the
return 2 statement in the finally block is executed, and 2 is returned from the function.When
foo() is called and its return value is assigned to k, k will be 2.Hence, the output will be 2.

Join The Discussion