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