_counter = 0
class Counter:
def __init__(self, n):
self.n = n
def bump(self):
self.n += 1
def uses_global():
global _counter
_counter += 1
def mutates_param(lst):
lst.append(1)
def builds_local():
acc = []
acc.append(1)
def plain_global_rebind():
global _counter
_counter = 1
def outer_with_nonlocal():
x = 0
def plain_nonlocal_rebind():
nonlocal x
x = 1 return plain_nonlocal_rebind
def plain_local_binding():
y = 1
class Bag:
def __init__(self):
self.items = [] self.items.append(1)
def store(self, i, v):
self[i] = v
import config
def mutates_imported_module():
config.settings.append(1)
def captures_outer_binding():
outer = []
def inner():
outer.append(1) return inner