グローバル変数の再割り当てはできません。常に同じオブジェクトを指します。 ただし、値が可変である場合(リストのコンテンツなど)、その内容が変わる可能性があります。ローカル変数にこの制限はありません。
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