无法重新分配全局变量。它始终指向同一对象。 但是,如果值是可变的(例如, 列表的内容),则其内容可能会发生变化。局部变量没有此限制。
a = [1, 2]
a[1] = 3
b = 3
b = 4 # forbidden
ERROR: /path/ext.bzl:7:1: Variable b is read only
如果您尝试重新定义函数(函数 重载不受支持),也会收到类似错误,例如:
def foo(x): return x + 1
def foo(x, y): return x + y # forbidden