> The question is, what behaviour is preferable for this code: >> g = 1 > def f(): > g += 1 >> f() >> Should this raise an UnboundLocalError or should it increment g? I think it should increment (i.e. rebind) g, for the same reason that g = [1] def f(): g[0] += 1 f() rebinds g[0].