• Skip to main content
  • Skip to primary sidebar
  • Skip to secondary sidebar
  • Skip to footer

Computer Notes

Library
    • Computer Fundamental
    • Computer Memory
    • DBMS Tutorial
    • Operating System
    • Computer Networking
    • C Programming
    • C++ Programming
    • Java Programming
    • C# Programming
    • SQL Tutorial
    • Management Tutorial
    • Computer Graphics
    • Compiler Design
    • Style Sheet
    • JavaScript Tutorial
    • Html Tutorial
    • Wordpress Tutorial
    • Python Tutorial
    • PHP Tutorial
    • JSP Tutorial
    • AngularJS Tutorial
    • Data Structures
    • E Commerce Tutorial
    • Visual Basic
    • Structs2 Tutorial
    • Digital Electronics
    • Internet Terms
    • Servlet Tutorial
    • Software Engineering
    • Interviews Questions
    • Basic Terms
    • Troubleshooting
Menu

Header Right

Home » Python » OOPS Concepts in Python
Next →
← Prev

OOPS Concepts in Python

By Dinesh Thakur

Python is a object-oriented programming language. Any object-oriented programming language’s key concepts include classes, objects, data hiding, encapsulation, abstraction, polymorphism, and inheritance.

Classes

A class is a logical way to group fields that hold values (data) and associated methods that operate on those fields into a single unit. The class provides the structure or blueprint for creating objects. It describes how an object looks and operates. It helps us to create a user-defined data type.
All classes must be defined by a class definition, which consists of two parts: class header and class body.
The class header declares the class names along with other information about the class such as the name of its superclass, whether it implements any interfaces, access specifier that determines the visibility. These modifiers declare whether the class is abstract or final. The class body is enclosed within braces and consists of fields, methods, constructors, and other declarations. At its most superficial level, the class takes the following form.

class ClassName: 
  <statement-1> 
   ............ 
  <statement-N> 

Example :

class Sum: 
x = input("Type First Number: ")
y = input("Type Second number: ")
sum = int(Sum.x) + int(Sum.y)
print("The sum is: ", sum) 

Class variable

If a field is declared static, then there is one field for the entire class instead of one per object. A class’s static field is often referred to as a class variable because the static field is associated with a class and not with individual instances of the class. A static field gets memory only once for the whole class, no matter how many class objects are created.

Methods

Methods are truly the heart and soul of the programs. A method is a self-contained block of code that performs a specific task. They provide a way of defining an object’s behavior(s), i.e., what the object does. Methods serve to break up large and complex calculations that might involve many code lines into more manageable chunks. All execution that takes place in any application is within a method.

Object

Consider an example of an architect of a house who specifies a house design, i.e., how it will look like, but doesn’t build any house. On the basis of this design, a builder can build one or more houses. Similarly, a class specifies the format for creating objects. The mere definition of a class doesn’t create any object. It only describes how the objects will look like when they are created. So a class definition is just a template or a blueprint based on which one or more objects, which are real-world entities, can be created.

When defining a class, an object must be generated to assign the memory. Consider the scenario below.

class house: 
    def __init__(self,rooms, area): 
       self.rooms = rooms 
       self.area = area 
    def display(self): 
       print(self.rooms,self.area) 
h1 = house("5", 2000) 
h1.display() 

Polymorphism

Polymorphism is a compelling concept that allows you to design amazingly flexible applications. The word ‘Polymorphism: is derived from two Greek words, 'poly,' which means many, and 'morphos,' which means forms. So, polymorphism implies the ability to take many forms.
Polymorphism can be defined as one interface multiple methods, which means that one interface can perform different but related activities. In programming terms, it means the ability by which a single variable of a given type can be used to reference objects of different types and automatically call the method specific to the type of object the variable references. It enables a single method call to behave differently depending on the type of object the call applies.

Inheritance

We have been dealing with objects, which are the building blocks of the object oriented programming language. A programmer may use multiple objects belonging to different classes in some situations, which may have some relationship among themselves as they share some standard features.

Let us consider an example of a python program containing objects of two different classes, Car and Motorcycle, for maintaining car and motorcycle information, respectively. Both Car and Motorcycle classes exhibit some relationship as both are vehicles and share some standard features like speed, engine specification, etc. To represent the relationship between classes, we use the concept of Inheritance.

Inheritance is one of the key concepts in the Python Object-Oriented Programming language that enables you to organize classes in a hierarchical form. Just like a child inherits his parents’ characteristics and adds certain new characteristics of his own, a programmer can write a new class that can inherit the accessible fields and methods of the existing class and may also add new fields and methods. The inclusion of members of the existing class in a new class so that they are accessible in the new class is known as class inheritance. The existing class that is being inherited is called the superclass, and the new class that inherits the functionality is called the subclass. In some other programming languages, a superclass can also be referred to as a parent, base class, or an ancestor, and the subclass is referred to as a child, derived class, or a descendant.

Function overloading

We may use the same name for many Python functions in function overloading, but with a different number or type of parameters.

Data Hiding

The characteristics of an object may or may not be visible outside of the class definition. It will benefit if you named attributes with a double underscore prefix, and those attributes are not accessible to outsiders.

class Total:
   __Sum = 0
   def count(self):
     self.__Sum += 1
     print self.__Sum
counter = Total()
counter.count()
counter.count()
print counter.__Sum

Operator overloading

Operator overloading is the method of utilizing an operator according to the operand in various forms. You may adjust the way a Python operator operates on numerous data types.

class Bubble:
   def __init__(self, Volume, Area):
     self.Volume = Volume
     self.Area = Area
   def __str__(self):
     return 'Bubble (%d, %d)' % (self.Volume, self.Area)
   def __add__(self,other):
     return Bubble(self.Volume + other.Volume, self.Area + other.Area)
b1 = Bubble(2,10)
b2 = Bubble(5,-2)
print (b1 + b2)

Overriding Methods

A subclass inherits methods from a superclass. However, in certain situations, the subclass needs to modify the implementation (code) of a method defined in the superclass without changing the parameter list. It is achieved by overriding or redefining the method in the subclass.

To override a subclass’s method, we redefine the subclass method with the same name, same return type, and the same parameter list as its superclass counterpart. When the method with the same name exists in both the superclass and in the subclass, the object of the subclass will invoke the method of the subclass, not the method inherited from the base class.

class Parent: # define parent class
    def M1(self):
       print ('Parent Method')
class Child(Parent): # define child class
    def M1(self):
       print ('Child Method')
child = Child() # instance of child
child.M1() # child calls overridden method

Constructor

A constructor is a special method called whenever an object is created,which is used to initialize the class members.

In Python, we have special built-in class methods that start with a double underscore (__), and they have a significant meaning.

The name of the constructor will always be __init__().

Every class must have a constructor, and if you don’t explicitly create a constructor; it creates a default constructor by itself.

You’ll also like:

  1. What is the Concepts in OOP’s? Benefits of OOPS
  2. Basic Concepts of the Systems Approach
  3. What are OOP Concepts in Java? – Definition & Examples
  4. What is Python? | Introduction to Python Programming
  5. Python Features | Main Features of Python Programming Language
Next →
← Prev
Like/Subscribe us for latest updates     

About Dinesh Thakur
Dinesh ThakurDinesh Thakur holds an B.C.A, MCDBA, MCSD certifications. Dinesh authors the hugely popular Computer Notes blog. Where he writes how-to guides around Computer fundamental , computer software, Computer programming, and web apps.

Dinesh Thakur is a Freelance Writer who helps different clients from all over the globe. Dinesh has written over 500+ blogs, 30+ eBooks, and 10000+ Posts for all types of clients.


For any type of query or something that you think is missing, please feel free to Contact us.


Primary Sidebar

Python

Python Tutorials

  • Python - Home
  • Python - Features
  • Python - Installation
  • Python - Hello World
  • Python - Operators Types
  • Python - Data Types
  • Python - Variable Type
  • Python - Switch Case
  • Python - Line Structure
  • Python - String Variables
  • Python - Condition Statement
  • Python - if else Statement
  • Python - for-loop
  • Python - while loop
  • Python - Command Line
  • Python - Regular Expression

Python Collections Data Types

  • Python - List
  • Python - Sets
  • Python - Tuples
  • Python - Dictionary

Python Functions

  • Python - Functions
  • Python - String Functions
  • Python - Lambda Function
  • Python - map() Function

Python Object Oriented

  • Python - Oops Concepts
  • Python - File Handling
  • Python - Exception Handling
  • Python - Multithreading
  • Python - File I/O

Python Data Structure

  • Python - Linked List
  • Python - Bubble Sort
  • Python - Selection Sort
  • Python - Linear Search
  • Python - Binary Search

Python Programs

  • Python - Armstrong Number
  • Python - Leap Year Program
  • Python - Fibonacci Series
  • Python - Factorial Program

Other Links

  • Python - PDF Version

Footer

Basic Course

  • Computer Fundamental
  • Computer Networking
  • Operating System
  • Database System
  • Computer Graphics
  • Management System
  • Software Engineering
  • Digital Electronics
  • Electronic Commerce
  • Compiler Design
  • Troubleshooting

Programming

  • Java Programming
  • Structured Query (SQL)
  • C Programming
  • C++ Programming
  • Visual Basic
  • Data Structures
  • Struts 2
  • Java Servlet
  • C# Programming
  • Basic Terms
  • Interviews

World Wide Web

  • Internet
  • Java Script
  • HTML Language
  • Cascading Style Sheet
  • Java Server Pages
  • Wordpress
  • PHP
  • Python Tutorial
  • AngularJS
  • Troubleshooting

 About Us |  Contact Us |  FAQ

Dinesh Thakur is a Technology Columinist and founder of Computer Notes.

Copyright © 2025. All Rights Reserved.

APPLY FOR ONLINE JOB IN BIGGEST CRYPTO COMPANIES
APPLY NOW