मुख्य सामग्री पर जाएं

Python में Inner Classes

इस बेसिक Python ट्यूटोरियल में, आप सीखेंगे कि inner classes का उपयोग क्यों और कब करना चाहिए।
अपडेट किया गया 25 सित॰ 2026  · 5 मि॰ पढ़ें

AI के साथ खोजें

ChatGPTClaudePerplexity

आपने संभवतः nested functions के बारे में Python में सुना होगा। यदि आप उसका अर्थ जानते हैं, तो inner/nested classes समझना मुश्किल नहीं है। हम यहां Inner या Nested classes में कुछ नई बातें जानेंगे।

1. Inner या Nested Classes

Inner या Nested Class किसी दूसरी class के अंदर परिभाषित होती है। inner या nested classes की संरचना देखें।

## outer class
class Outer:

    ## inner class
    class Inner:
        pass

        ## multilevel inner class
        class InnerInner:
            pass

    ## another inner class
    class _Inner:
        pass

    ## ...

    pass

इस ट्यूटोरियल का कोड ऑनलाइन चलाएं और संपादित करें

कोड चलाएं

2. Inner Classes क्यों?

  1. दो या अधिक classes को समूहित करना। मान लीजिए आपके पास दो classes हैं: Car और Engine। हर Car को एक Engine चाहिए। लेकिन, Engine का उपयोग Car के बिना नहीं होगा। इसलिए आप Engine को Car की inner class बना देते हैं। इससे कोड व्यवस्थित और संक्षिप्त रहता है।

  2. कोड छिपाना Nested classes का एक और उपयोग है। आप Nested classes को बाहरी दुनिया से छिपा सकते हैं।

  3. Classes को समझना आसान हो जाता है। यहां classes आपस में घनिष्ठ रूप से सम्बद्ध होती हैं। आपको कोड में classes खोजने की आवश्यकता नहीं पड़ती — वे सब साथ रहती हैं।

Inner या Nested classes Python में बहुत सामान्य फीचर नहीं हैं। लेकिन कोड लागू करने के लिए यह एक अच्छा फीचर हो सकता है। inner या nested classes का उपयोग करने पर कोड को व्यवस्थित करना सीधा-सादा हो जाता है।

3. Inner Classes का कोडिंग

inner या nested classes को लागू करना कठिन नहीं है। आप कोड की संरचना यहां देख सकते हैं।

आप inner class को outer class के भीतर self कीवर्ड का उपयोग करके एक्सेस कर सकते हैं। इस तरह आप आसानी से inner class का instance बना सकते हैं और outer class में मनचाले ऑपरेशन कर सकते हैं। हालांकि, आप किसी inner class के भीतर से outer class को एक्सेस नहीं कर सकते। आइए नीचे एक उदाहरण देखते हैं।

class Outer:
    """Outer Class"""

    def __init__(self):
        ## instantiating the 'Inner' class
        self.inner = self.Inner()

    def reveal(self):
        ## calling the 'Inner' class function display
        self.inner.inner_display("Calling Inner class function from Outer class")

    class Inner:
        """Inner Class"""

        def inner_display(self, msg):
            print(msg)

अब, आप Outer class का instance बनाएंगे और उसकी reveal() मेथड कॉल करके Inner class की मेथड inner_display() चलाएंगे।

## creating an instance of the 'Outer' class
outer = Outer()
## calling the 'reveal()' method
outer.reveal()
Calling Inner class function from Outer class

आइए inner class को एक्सेस करने का एक और तरीका देखें। यह तरीका थोड़ा कम कुशल है।

Outer().Inner().inner_display("Calling the Inner class method directly")
Calling the Inner class method directly

क्या होगा यदि आप outer class के बाहर inner class का instance बनाना चाहें? क्या आप ऐसा कर सकते हैं? हां, आइए देखें कि outer class के बाहर inner class का instance कैसे बनता है।

outer = Outer()

## instantiating the inner class
inner = outer.Inner() ## inner = Outer().Inner() or inner = outer.inner
inner.inner_display("Just Print It!")
Just Print It!

3.1. Multiple Inner Classes

यह वह class है जिसमें एक से अधिक inner class हों। किसी class में आप एक से अधिक inner class रख सकते हैं। जैसा कि हमने पहले परिभाषित किया, कई inner classes को लागू करना आसान है।

class Outer:
    """Outer Class"""

    def __init__(self):
        ## Instantiating the 'Inner' class
        self.inner = self.Inner()
        ## Instantiating the '_Inner' class
        self._inner = self._Inner()

    def show_classes(self):
        print("This is Outer class")
        print(inner)
        print(_inner)

    class Inner:
        """First Inner Class"""

        def inner_display(self, msg):
            print("This is Inner class")
            print(msg)

    class _Inner:
        """Second Inner Class"""

        def inner_display(self, msg):
            print("This is _Inner class")
            print(msg)

    ## ...

इन classes को एक्सेस करना पहले जैसा ही है। बेहतर समझ के लिए उदाहरण देखें।

## instantiating the classes

## 'Outer' class
outer = Outer()
## 'Inner' class
inner = outer.Inner() ## inner = outer.inner or inner = Outer().Inner()
## '_Inner' class
_inner = outer._Inner() ## _inner = outer._outer or _inner = Outer()._Inner()

## calling the methods
outer.show_classes()

print()

## 'Inner' class
inner.inner_display("Just Print It!")

print()

## '_Inner' class
_inner.inner_display("Just Show It!")
This is Outer class
<__main__.Outer.Inner object at 0x0000021B37962048>
<__main__.Outer._Inner object at 0x0000021B37962160>

This is Inner class
Just Print It!

This is _Inner class
Just Show It!

3.2. Multilevel Inner Classes

multilevel inner classes में, inner class के अंदर एक और class होती है जो पिछली class की inner class होती है। इस पदानुक्रम की संरचना आप यहां देख सकते हैं:

class Outer:
    """Outer Class"""

    def __init__(self):
        ## instantiating the 'Inner' class
        self.inner = self.Inner()
        ## instantiating the multilevel 'InnerInner' class
        self.innerinner = self.inner.InnerInner()

    def show_classes(self):
        print("This is Outer class")
        print(inner)

    ## inner class
    class Inner:
        """First Inner Class"""

        def __init__(self):
            ## instantiating the 'InnerInner' class
            self.innerinner = self.InnerInner()

        def show_classes(self):
            print("This is Inner class")
            print(self.innerinner)

        ## multilevel inner class
        class InnerInner:

            def inner_display(self, msg):
                print("This is multilevel InnerInner class")
                print(msg)

        def inner_display(self, msg):
            print("This is Inner class")
            print(msg)

    ## ...

आइए देखें multilevel inner class का instance कैसे बनता है।

outer = Outer()

inner = outer.Inner()

## this is 'InnerInner' class instance
innerinner = inner.InnerInner() ## innerinner = Outer().Inner().InnerInner()

## let's call its method inner_display
innerinner.inner_display("Just Print It!")
This is multilevel InnerInner class
Just Print It!

निष्कर्ष

आशा है अब आप inner classes की अवधारणा समझ गए होंगे। अब आपकी बारी है कि आप nested classes के साथ प्रयोग करें। Happy Coding :)

यदि आप classes के बारे में और सीखना चाहते हैं, तो DataCamp का Python Object-Oriented Programming (OOP): Tutorial देखें।

DataCamp का Object-Oriented Programming in Python कोर्स करें।

विषय
Python

Python के बारे में और जानें

कोर्स

Python में ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग

4 घंटा
105.5K
क्लास बनाना सीखें और इनहेरिटेंस व पॉलीमॉर्फ़िज़्म का उपयोग करके कोड को पुनः उपयोग और अनुकूलित करें।
विवरण देखेंRight Arrow
पाठ्यक्रम शुरू करें

कोर्स

Python परिचय

4 घंटा
7M
Python के साथ डेटा विश्लेषण की बुनियादी बातें सिर्फ चार घंटे में सीखें। यह ऑनलाइन पाठ्यक्रम Python इंटरफ़ेस का परिचय देगा और लोकप्रिय पैकेजों का अन्वेषण करेगा।
और देखेंRight Arrow