ऑब्जेक्ट जोड़ना
blue रंग पेन का है, बैग का नहीं। बैग उस पेन को बस साथ रखता है, इसलिए Bag, Pen की आगे बढ़ाई क्लास नहीं बनता। पहले आप Pen("blue") से पेन बनाते हैं, फिर Bag(pen) से उसे बैग में रख देते हैं। इस काम में न पैकेज लगता है, न फ़ोल्डर बनता है।
class Pen:
def __init__(self, color):
self.color = color
class Bag:
def __init__(self, pen):
self.pen = pen
pen = Pen("blue")
bag = Bag(pen)
print(bag.pen.color)
रंग तक पहुँचने के लिए रास्ता बैग से पेन की ओर जाता है: bag.pen.color। बैग का अपना रंग नहीं है, वह पेन का रंग आगे पहुँचाता है। bag.pen कोई दूसरा पेन नहीं। वही है जो आपने बनाया, इसलिए pen.color और bag.pen.color दोनों blue हैं। print स्क्रीन पर सिर्फ़ यही एक शब्द लिखता है। आगे badge नहीं जुड़ता, 4 नहीं लिखा जाता, और दूसरी पंक्ति नहीं आती।
class Bag लिख देने से बैग नहीं भरता। वह तो ढाँचा है। पेन तब अंदर जाता है जब Bag(pen) चलता है। उसी पल बैग का init चलता है और self वही बैग होता है।
📊 नाम और उनका मतलब
| आप क्या लिखते हैं | उसका मतलब |
|---|---|
| pen | वह पेन जो आपने बनाया, और blue उसी के पास है |
| bag.pen | वही पेन, बैग के अंदर |
| bag.pen.color | शब्द blue |
प्रोग्राम में bag.color नहीं है। आप उसे पढ़ें तो प्रोग्राम AttributeError पर रुक जाता है, क्योंकि बैग पर रंग रखा ही नहीं। None नहीं लिखा जाता और प्रोग्राम आगे नहीं बढ़ता। Bag("blue") भी प्रोग्राम में नहीं है। अकेला शब्द पेन नहीं होता और उसका रंग नहीं होता, इसलिए उस पर .color पढ़ना भी AttributeError पर रुक जाता है। class Bag(Pen) मत लिखिए। वह रूप आगे बढ़ाई क्लास बनाता है। यहाँ पेन बैग के भीतर है।
बैग के भीतर रखा पेन
पेन बनाया, बैग में रखा, और bag.pen.color से blue पढ़ लिया। अगला पन्ना डेटा क्लास का है, यानी ऐसी क्लास जो मुख्य रूप से मान सँभालकर रखती है। इस पन्ने में बस पेन बैग में है और blue बैग के रास्ते पढ़ा गया है।
🧠 अपने ज्ञान की परीक्षा करें
अपने ज्ञान की परीक्षा करें
इस इंटरैक्टिव क्विज़ के साथ अपनी चुनौती लें और देखें कि आप विषय को कितनी अच्छी तरह समझते हैं
📝 निर्देश
- हर प्रश्न को ध्यान से पढ़ें
- हर प्रश्न के लिए सबसे अच्छा उत्तर चुनें
- आप जितनी बार चाहें क्विज़ दोबारा दे सकते हैं
- आपकी प्रगति शीर्ष पर दिखाई जाएगी