Renaming Functions
Remember, variables are just names of things. Things can be anything – integers, strings, even functions. Let’s play around with some variables, renaming them, and changing their value. Then we’ll predict what they output. What would the following output in Python?
>>> f = min
>>> def f(x):
... return x + 1
...
>>> max = f
>>> f, min = min, f
>>> min(4)
#1
>>> max(4)
#2
- 5
- 5
The tricky part here is the line:
>>> f, min = min, f
In Python, we always evaluate the right side of an assignment before the left. In this case, we evaluate both the function min
and the function f
. We keep track of what those two variables are pointing to, then we reassign them. In this case, f
now points to where min
used to point to and min
now points to where f
points to. So, when we call both min
and max
, we’re actually just calling the original function f
. The original function f
simply returns 1 + the value of the input which in this case was four.
I don't claim to be perfect so if you find an error on this page, please send me an email preferably with a link to this page so that I know what I need to fix!