गड़बड़ी: वैरिएबल x सिर्फ़ रीड ओनली है

7.3 · 7.2 · 7.1 · 7.0 · 6.5

किसी ग्लोबल वैरिएबल को फिर से असाइन नहीं किया जा सकता. यह हमेशा समान ऑब्जेक्ट की ओर इशारा करेगा. हालांकि, अगर वैल्यू में बदलाव किया जा सकता है, तो इसका कॉन्टेंट बदल सकता है (उदाहरण के लिए, किसी सूची का कॉन्टेंट). लोकल वैरिएबल पर यह पाबंदी नहीं है.

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