标签:没有 reference ble 一个 += end class lob trace
对于一个全局变量,你的函数里如果只使用到了它的值,而没有对其赋值(指a = XXX
这种写法)的话,就不需要声明global。
相反,如果你对其赋了值的话,那么你就需要声明global
。声明global
的话,就表示你是在向一个全局变量赋值,而不是在向一个局部变量赋值。
>>> lst = [1, 2, 3] >>> def foo1(): ... lst.append(5) # 这没有问题... ... >>> foo1() >>> lst [1, 2, 3, 5] >>> lst = [1, 2, 3] >>> def foo2(): ... lst += [5] # ... 这就有问题了! ... >>> foo2() Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<stdin>", line 2, in foo UnboundLocalError: local variable ‘lst‘ referenced before assignment
标签:没有 reference ble 一个 += end class lob trace
原文地址:https://www.cnblogs.com/xone/p/10300691.html