So let's say I have a function like this:
def dummy():
e = 1
try:
return e
finally:
e = 2
This function returns 1, so it looks like return statement is executed before finally, so finally has no effect at all.
However, when I declare the function like this:
def dummy():
e = {}
e['x'] = 1
try:
return e
finally:
e['x'] = 2
The returned value is {'x': 2}, so it looks like finally is executed before return.
Could someone explain to me what happens here actually?