یک متغیر سراسری قابل تخصیص مجدد نیست. همیشه به همان شی اشاره خواهد کرد. با این حال، اگر مقدار قابل تغییر باشد (مثلاً محتوای یک لیست)، محتوای آن ممکن است تغییر کند. متغیرهای محلی این محدودیت را ندارند.
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