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
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(:).
Syntax:
class ClassName:statemen-1statemen-2statemen-3...statement-n
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.
Object
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.
Syntax
class ClassName:passobj = ClassName()
Here, ClassName is the name of the class, and obj is the object of the class.
Example
class Employee:# class attributecompany = "violet-cat-415996.hostingersite.com"# constructordef __init__(self, name, age, salary):# instance attributesself.name = nameself.age = ageself.salary = salary# creating objectsemp1 = Employee("John", 34, 50000)emp2 = Employee("Harry", 30, 60000)# accessing class attributes using __class__ method# syntax is-- instance.__class__.attributeprint(f"{emp1.name} and {emp2.name} work for {emp1.__class__.company}")# accessing instance attributes# syntax is-- instance.instance_attributeprint(f"{emp1.name}'s age is {emp1.age} and salary is {emp1.salary}")print(f"{emp2.name}'s age is {emp2.age} and salary is {emp2.salary}")
Output
John and Harry work for violet-cat-415996.hostingersite.comJohn's age is 34 and salary is 50000Harry's age is 30 and salary is 60000
Explanation
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.
Constructor
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
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.
Example
class Employee:# class attributecompany = "violet-cat-415996.hostingersite.com"# constructordef __init__(self, name, age, salary):# instance attributesself.name = nameself.age = ageself.salary = salary# class methoddef myMethod1(self):print(f"Hi {self.name}!")def myMethod2(self, city):print(f"{self.name}, do you lives in {city}?")# creating objectsemp1 = Employee("John", 34, 50000)emp2 = Employee("Harry", 30, 60000)# calling methodsemp1.myMethod1()emp1.myMethod2("London")
Output
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: