Given the following code
def alpha(num, proc):
def beta(): print(num)
if num == 1:
alpha(2, beta)
else:
proc()
def gamma():
pass
alpha(1, gamma)
I expected the output to be 2, since my logic was:
alpha(1, gamma)
=> alpha(2, beta) # since num == 1
=> proc() # since num != 1
=> beta()
=> print(2) # since beta was a parameter alongside 2
However, the actual output is code is 1. Could anyone please explain why this is the case?