यह अजगर सीखने का मेरा दूसरा दिन है (मैं C ++ और कुछ OOP की मूल बातें जानता हूं।), और मुझे अजगर में चर के बारे में कुछ मामूली भ्रम है।
यहाँ मैं उन्हें वर्तमान में कैसे समझ सकता हूँ:
पायथन चर वस्तुओं के संदर्भ (या संकेत?) हैं (जो या तो परस्पर या अपरिवर्तनीय हैं)। जब हमारे पास कुछ ऐसा होता है num = 5
, तो अपरिवर्तनीय ऑब्जेक्ट 5
को मेमोरी में कहीं बनाया जाता है, और नाम-ऑब्जेक्ट संदर्भ जोड़ी num
एक निश्चित नामस्थान में बनाई जाती है। जब हमारे पास है a = num
, तो कुछ भी कॉपी नहीं किया जा रहा है, लेकिन अब दोनों चर एक ही वस्तु को संदर्भित करते हैं और एक a
ही नामस्थान में जोड़ दिए जाते हैं।
यह वह जगह है जहां मेरी पुस्तक, पायथन के साथ उबाऊ सामान को स्वचालित करती है , मुझे भ्रमित करती है। जैसा कि यह एक नौसिखिया पुस्तक है, इसमें वस्तुओं, नामस्थानों आदि का उल्लेख नहीं है, और यह निम्नलिखित कोड को समझाने का प्रयास करता है:
>>> spam = 42
>>> cheese = spam
>>> spam = 100
>>> spam
100
>>> cheese
42
यह जो स्पष्टीकरण प्रदान करता है, वह सी ++ पुस्तक की तरह ही है, जिसे लेकर मैं खुश नहीं हूं क्योंकि हम वस्तुओं के संदर्भ / संकेत के साथ काम कर रहे हैं। तो इस मामले में, मुझे लगता है कि 3 जी लाइन में, जैसा कि पूर्णांक अपरिवर्तनीय हैं, spam
को मेमोरी में एक अलग स्थान पर एक पूरी तरह से नया पॉइंटर / संदर्भ सौंपा जा रहा है, अर्थात मेमोरी जिसे यह शुरू में इंगित करता था कि संशोधित नहीं किया गया था। इसलिए हमारे पास cheese
संदर्भित प्रारंभिक वस्तु है spam
। क्या यह सही स्पष्टीकरण है?