- nonlocal
Counter closure
examples/closures/counter.py
def create_counter(): count = 0 def internal(): nonlocal count count += 1 return count return internal counter = create_counter() print(counter()) print(counter()) print(counter()) print() other = create_counter() print(counter()) print(other()) print(counter()) print(other()) print() print(count)
1 2 3 4 1 5 2 Traceback (most recent call last): File "counter.py", line 23, in <module> print(count) NameError: name 'count' is not defined