pythonのスコープ
エラーになる。
def f(): x = 0 def g(): x += 1 print x g() f() # UnboundLocalError: local variable 'x' referenced before assignment
primitiveな値ではなく、オブジェクトなどの参照を保持する値を使えば大丈夫.
class Ref(object): def __init__(self, val): self.val = val def __call__(self, n=None): if n: self.val = n return self.val def f(): x = Ref(0) def g(): x(x() + 1) print x() g() f() # 1