इस ट्यूटोरियल में, हम पायथन में self के बारे में जानेंगे। यदि आप पायथन के साथ काम कर रहे हैं तो आप इससे परिचित होंगे। हम इसके बारे में कुछ दिलचस्प चीजें देखेंगे।
नोट - self पायथन में एक कीवर्ड नहीं है।
आइए पायथन में self के सबसे सामान्य उपयोग से शुरू करें।
हम ऑब्जेक्ट के इंस्टेंस को दर्शाने के लिए क्लासेस में self का उपयोग करेंगे। हम एक क्लास के कई इंस्टेंस बना सकते हैं और प्रत्येक इंस्टेंस के अलग-अलग मान होंगे। और self क्लास इंस्टेंस के भीतर उन प्रॉपर्टी मानों को प्राप्त करने में हमारी मदद करता है। आइए एक उदाहरण देखें।
उदाहरण
# क्लास class Laptop: # init मेथड def __init__(self, company, model): # self self.company = company self.model = model
हम क्लास के गुणों को self.[कुछ] के रूप में परिभाषित कर रहे हैं। इसलिए, जब भी हम क्लास का एक इंस्टेंस बनाते हैं, तो self उस इंस्टेंस को संदर्भित करेगा जिससे हम क्लास गुणों या मेथड्स को एक्सेस कर रहे हैं।
अब, Laptop क्लास के दो इंस्टेंस बनाते हैं और देखते हैं कि self कैसे काम करता है।
उदाहरण
# क्लास class Laptop: # init मेथड def __init__(self, company, model): # self self.company = company self.model = model # क्लास के लिए इंस्टेंस बनाना laptop_one = Laptop('Lenovo', 'ideapad320') laptop_two = Laptop('Dell', 'inspiron 7000') # इंस्टेंस के गुण प्रिंट करना print(f"लैपटॉप एक: {laptop_one.company}") print(f"लैपटॉप दो: {laptop_two.company}")आउटपुट
यदि आप उपरोक्त कोड चलाते हैं, तो आपको निम्नलिखित परिणाम मिलेगा।
लैपटॉप एक: Lenovo लैपटॉप दो: Dell
हमें एक ही गुण के लिए दो अलग-अलग नाम मिले। आइए इसके पीछे कुछ विवरण देखें।
पायथन डिफ़ॉल्ट रूप से इसके मेथड्स या गुणों को एक्सेस करते समय इंस्टेंस का एक रेफरेंस भेजता है। और रेफरेंस self में कैप्चर होता है। इसलिए, प्रत्येक इंस्टेंस के लिए रेफरेंस अलग होता है। और हमें संबंधित इंस्टेंस गुण मिलते हैं।
हम जानते हैं कि self पायथन का कीवर्ड नहीं है। यह एक तर्क की तरह है जिसे आप किसी इंस्टेंस के किसी गुण या मेथड को एक्सेस करते समय भेजने की आवश्यकता नहीं होती।
पायथन स्वचालित रूप से आपके लिए इंस्टेंस का रेफरेंस भेजेगा। हम इंस्टेंस के रेफरेंस को किसी भी चर नाम से कैप्चर कर सकते हैं। निम्नलिखित कोड चलाएं और आउटपुट देखें।
उदाहरण
import inspect # क्लास class Laptop: # init मेथड def __init__(other_than_self, company, model, colors): # self वास्तव में नहीं other_than_self.company = company other_than_self.model = model other_than_self.colors_available = colors # मेथड def is_laptop_available(not_self_but_still_self, color): # निर्दिष्ट रंग में लैपटॉप उपलब्ध है या नहीं लौटाएं return color in not_self_but_still_self.colors_available # क्लास का एक इंस्टेंस बनाना laptop = Laptop('Dell', 'inspiron 7000', ['Silver', 'Black']) # रंग कीवर्ड के बिना is_laptop_available मेथड आह्वान करना print("उपलब्ध") if laptop.is_laptop_available('Silver') else print("उपलब्ध नहीं") print("उपलब्ध") if laptop.is_laptop_available('White') else print("उपलब्ध नहीं")आउटपुट
यदि आप उपरोक्त कोड चलाते हैं, तो आपको निम्नलिखित परिणाम मिलेगा।
उपलब्ध उपलब्ध नहीं
हमने नाम self को कुछ और में बदल दिया। लेकिन फिर भी, यह पहले की तरह काम करता है। कोई अंतर नहीं है। इसलिए, self एक कीवर्ड नहीं है। और इसके अलावा, हम self को जो चाहें बदल सकते हैं। यह एक तर्क की तरह है।
नोट - सर्वोत्तम अभ्यास self का उपयोग करना है। यह एक मानक है जिसका हर पायथन प्रोग्रामर पालन करता है
निष्कर्ष
यदि ट्यूटोरियल में आपके कोई संदेह हैं, तो उन्हें टिप्पणी अनुभाग में उल्लेख करें।