Python OOPs Concepts

What is OOPs in Python?

OOPs stands for object oriented programming.

This is a feature/concept which is generally provided by most of the languages.

This concept is helps to make real-world applications using python.

OOPs helps in making a code so smaller and writing the resuable code.

OOPs is a programming concept that uses some other technical terms to work and these technical terms are necessary to understand before one starts using oops concepts. Technical terms are like–

  • class
  • object
  • method
  • inheritance
  • polymorphism
  • encapsulation
  • data-abstraction

We will try to cover everything in detail with easy explanations.


Class is called as the blueprint for the object. If you want to create a class then you need to use class keyword then write the name of the class and finally give a colon(:).


class ClassName:

A class contains class attributes, class constructor, class methods, etc.

For example, Parrot is an object of class bird that can have attributes like name, age, color, etc.


Objects are the instantiation of classes and also the way to use classes.

These are those entities that have attributes and behaviors which are defined inside the class.

In real-word, object examples are desktop, mobile, ac, freeze, etc.

When we create a class, then we only describe the blueprint for objects but memory is allocated when we create objects of classes.


class ClassName:
obj = ClassName()

Here, ClassName is the name of the class, and obj is the object of the class.


class Employee:
    # class attribute
    company = ""
    # constructor
    def __init__(self, name, age, salary):
        # instance attributes = name
        self.age = age
        self.salary = salary

# creating objects
emp1 = Employee("John", 34, 50000)
emp2 = Employee("Harry", 30, 60000)

# accessing class attributes using __class__ method
# syntax is-- instance.__class__.attribute
print(f"{} and {} work for {}")

# accessing instance attributes
# syntax is-- instance.instance_attribute
print(f"{}'s age is {emp1.age} and salary is {emp1.salary}")
print(f"{}'s age is {emp2.age} and salary is {emp2.salary}")


John and Harry work for
John's age is 34 and salary is 50000
Harry's age is 30 and salary is 60000


Class Attribute

We create a class with name “Employee“. Variables that we create in a class are called class attributes and here, the company is a class attribute.


Then, we have created the constructor. A constructor is a special method in a class that the python always calls when we create or instantiate an object. Python uses “__init__()” to create a constructor.

The self parameter

The __init__() method can take parameters but the first parameter should always be the “self” parameter which refers to the current instance of the class.

You can use any name instead of self but it should be the first parameter always.

Instance Attribute

Variables that we create inside a constructor are called instance attributes. These attributes are different for different instances. Like here name, age, and salary are different for both emp1 and emp2 instances.


Methods are the functions that are defined inside the body of a class and associated with an object. They are used to define the behaviors of an object.


class Employee:
    # class attribute
    company = ""
    # constructor
    def __init__(self, name, age, salary):
        # instance attributes = name
        self.age = age
        self.salary = salary
    # class method
    def myMethod1(self):
        print(f"Hi {}!")
    def myMethod2(self, city):
        print(f"{}, do you lives in {city}?")

# creating objects
emp1 = Employee("John", 34, 50000)
emp2 = Employee("Harry", 30, 60000)

# calling methods


Hi John!
John, do you lives in London?

Here, we have created two methods mymethod1 and mymethod2, we can use self parameter with them.

Also Read:

10 Tkinter Projects for Beginners

Introduction Python has become one of the fastest-growing programming languages, and its applications are also increasing every day. Tkinter Projects for Beginners are one of the best ways to learn the basics of Python. Tkinter is said to be one of the most straightforward modules to start learning Python as well. This will help absolute…

Continue Reading 10 Tkinter Projects for Beginners

10 Useful Python One-Liners

In this tutorial, we will learn about the best and most powerful Python One-Liners ranging from beginner’s level to advanced level that too with examples for better understanding. Using Python One-Liners in your programs will actually make your code more readable and precise. What exactly are Python One-Liners? One-liners in simple language are single-line codes…

Continue Reading 10 Useful Python One-Liners

20 Python Projects for Resume

About 20 Python Projects for Resume Today, in this article on 20 Python Projects for Resume, we’ll expose you to some of the top beginners to advanced python projects for resumes. In 2022, your best investment will be learning Python through practical projects. Therefore, working on actual Python projects is essential if you wish to…

Continue Reading 20 Python Projects for Resume