ग्लोबल वैरिएबल को फिर से असाइन नहीं किया जा सकता. यह हमेशा उसी ऑब्जेक्ट पर ले जाएगा. हालांकि, अगर वैल्यू म्यूट की जा सकती है, तो इसका कॉन्टेंट बदल सकता है, जैसे कि किसी सूची का कॉन्टेंट. लोकल वैरिएबल में यह पाबंदी नहीं है.
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