In Python, I was explaining to a friend how two variables can have the same name if one is passed as a parameter to a function.
For this, I tried:
def func(var):
print(id(var), "inside function")
var = var
return var
var = 3
print(id(var), "outside function")
var = func(var)
I was not expecting the id()’s to be the same.
Furthermore, I tried:
from copy import deepcopy
def func(var):
print(id(var), "1st inside function")
var = deepcopy(var)
print(id(var), "2nd inside function")
return var
var = 3
print(id(var), "1st outside function")
var = func(var)
print(id(var), "2nd outside function")
And all the id() values are still the same.
I was expecting the id() to change somehow. This seems counterintuitive to me at the moment.
Can someone please explain this behavior?