पायथन चर सी ++ भावना में "संदर्भ" नहीं हैं। इसके बजाय, वे स्मृति में कुछ मनमाने ढंग से स्थान पर किसी ऑब्जेक्ट से जुड़े स्थानीय नाम हैं। यदि वह ऑब्जेक्ट स्वयं उत्परिवर्तनीय है, तो इसमें परिवर्तन अन्य क्षेत्रों में दिखाई देगा जो ऑब्जेक्ट को नाम से बंधे हैं। कई आदिम प्रकार (bool
, int
, str
, और tuple
) अपरिवर्तनीय हैं। आप अपना मूल्य जगह में नहीं बदल सकते हैं; बल्कि, आप अपने स्थानीय दायरे में एक ही नाम के लिए एक नया मान असाइन करते हैं।
वास्तव में, लगभग किसी भी समय * आप प्रपत्र foo = X
का कोड देखते हैं, इसका मतलब है कि नाम foo
अपने वर्तमान स्थानीय नाम स्थान के भीतर एक नया मूल्य (X
) सौंपा जा रहा है, न कि foo
द्वारा नाम याद में एक स्थान है इसके आंतरिक सूचक को X
के स्थान पर संदर्भित करने के लिए अद्यतन किया गया है।
* - पायथन में इसका एकमात्र अपवाद गुणों के लिए सेटर विधियां है, जो आपको obj.foo = X
लिखने की अनुमति दे सकता है और इसे obj.setFoo(X)
जैसी विधि को कॉल करने के लिए पृष्ठभूमि में फिर से लिखा गया है।
डुप्लिकेट, कृपया http://stackoverflow.com/questions/534375/passing-values-in-python –