Python Closure Gotcha
var keyword leads us to a fun Gotcha.
Example of Gotcha:
def something_awesome(): awesome = 1 def increase_awesomeness(): awesome = 2 increase_awesomeness() return awesome
You’d think that this would return 2, but it returns 1. This is due to Python creating a new local variable
awesome inside the inner function. You can reach out of the closure when accessing a property. In places like these, since the inner function is used for utility only, I attach a property to it.
def something_awesome(): def increase_awesomeness(): increase_awesomeness.awesome += 1 increase_awesomeness.awesome = 1 increase_awesomeness() return increase_awesomeness.awesome