Counter closure
- nonlocal
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