Python is an Object-Oriented Programming Language, everything in python is related to objects, methods, and properties. A class is a user-defined blueprint or a prototype, which we can use to create the objects of a class. The class is defined by using the class keyword.
Example of class
Python3
# create a GeeksforLazyroar class class GeeksforLazyroar : gfg = 10 |
First of all, we have to understand the __init__() built-in method for understanding the meaning of classes. Whenever the class is being initiated, a method namely __init__() is always executed. An __init__() method is used to assign the values to object properties or to perform the other method that is required to complete when the object is created.
Example: class with __init__() method
Python3
# create a GeeksforLazyroar class class GeeksforLazyroar: # constructor method def __init__( self ): # object attributes self .course = "Campus preparation" self .duration = "2 months" # define a show method # for printing the content def show( self ): print ( "Course:" , self .course) print ( "Duration:" , self .duration) # create GeeksforLazyroar # class object outer = GeeksforLazyroar() # method calling outer.show() |
Output:
Course : Campus Preparation Duration : As per your schedule
Inner Class in Python
A class defined in another class is known as an inner class or nested class. If an object is created using child class means inner class then the object can also be used by parent class or root class. A parent class can have one or more inner classes but generally inner classes are avoided.
We can make our code even more object-oriented by using an inner class. A single object of the class can hold multiple sub-objects. We can use multiple sub-objects to give a good structure to our program.
Example:
- First, we create a class and then the constructor of the class.
- After creating a class, we will create another class within that class, the class inside another class will be called an inner class.
Python3
class Color: # constructor method def __init__( self ): # object attributes self .name = 'Green' self .lg = self .Lightgreen() def show( self ): print ( 'Name:' , self .name) # create Lightgreen class class Lightgreen: def __init__( self ): self .name = 'Light Green' self .code = '024avc' def display( self ): print ( 'Name:' , self .name) print ( 'Code:' , self .code) # create Color class object outer = Color() # method calling outer.show() # create a Lightgreen # inner class object g = outer.lg # inner class method calling g.display() |
Output:
Name: Green Name: Light Green Code: 024avc
Why inner class?
For the grouping of two or more classes. Suppose we have two classes remote and battery. Every remote needs a battery but a battery without a remote won’t be used. So, we make the Battery an inner class to the Remote. It helps us to save code. With the help of the inner class or nested class, we can hide the inner class from the outside world. Hence, Hiding the code is another good feature of the inner class. By using the inner class, we can easily understand the classes because the classes are closely related. We do not need to search for classes in the whole code, they all are almost together. Though inner or nested classes are not used widely in Python it will be a better feature to implement code because it is straightforward to organize when we use inner class or nested class.
Syntax:
# create NameOfOuterClass class class NameOfOuterClass: # Constructor method of outer class def __init__(self): self.NameOfVariable = Value # create Inner class object self.NameOfInnerClassObject = self.NameOfInnerClass() # create a NameOfInnerClass class class NameOfInnerClass: # Constructor method of inner class def __init__(self): self.NameOfVariable = Value # create object of outer class outer = NameOfOuterClass()
Types of inner classes are as follows:
- Multiple inner class
- Multilevel inner class
Multiple inner class
The class contains one or more inner classes known as multiple inner classes. We can have multiple inner class in a class, it is easy to implement multiple inner classes.
Example: Multiple inner class
Python3
# create outer class class Doctors: def __init__( self ): self .name = 'Doctor' self .den = self .Dentist() self .car = self .Cardiologist() def show( self ): print ( 'In outer class' ) print ( 'Name:' , self .name) # create a 1st Inner class class Dentist: def __init__( self ): self .name = 'Dr. Savita' self .degree = 'BDS' def display( self ): print ( "Name:" , self .name) print ( "Degree:" , self .degree) # create a 2nd Inner class class Cardiologist: def __init__( self ): self .name = 'Dr. Amit' self .degree = 'DM' def display( self ): print ( "Name:" , self .name) print ( "Degree:" , self .degree) # create a object # of outer class outer = Doctors() outer.show() # create a object # of 1st inner class d1 = outer.den # create a object # of 2nd inner class d2 = outer.car print () d1.display() print () d2.display() |
In outer class Name: Doctor Name: Dr. Savita Degree: BDS Name: Dr. Amit Degree: DM
Multilevel inner class
The class contains an inner class and that inner class again contains another inner class, this hierarchy is known as the multilevel inner class.
Example: Multilevel inner class
Python3
# create an outer class class GeeksforLazyroar: def __init__( self ): # create an inner class object self .inner = self .Inner() def show( self ): print ( 'This is an outer class' ) # create a 1st inner class class Inner: def __init__( self ): # create an inner class of inner class object self .innerclassofinner = self .Innerclassofinner() def show( self ): print ( 'This is the inner class' ) # create an inner class of inner class Innerclassofinner: def show( self ): print ( 'This is an inner class of inner class' ) # create an outer class object # i.e.GeeksforLazyroar class object outer = GeeksforLazyroar() outer.show() print () # create an inner class object gfg1 = outer.inner gfg1.show() print () # create an inner class of inner class object gfg2 = outer.inner.innerclassofinner gfg2.show() |
This is an outer class This is the inner class This is an inner class of inner class