12 OOPS in Python
12 OOPS in Python
12 OOPS in Python
attributes
behavior
Parrot is an object,
The concept of OOP in Python focuses on creating reusable code. This concept is
also known as DRY (Don't Repeat Yourself).
Class
A class is a blueprint for the object.
We can think of class as an sketch of a parrot with labels. It contains all the details
about the name, colors, size etc. Based on these descriptions, we can study about
the parrot. Here, parrot is an object.
pass
Here, we use class keyword to define an empty class Parrot. From class, we
construct instances. An instance is a specific object created from a particular class.
Object
An object (instance) is an instantiation of a class. When class is defined, only the
description for the object is defined. Therefore, no memory or storage is allocated.
obj = Parrot()
Suppose we have details of parrot. Now, we are going to show how to build the class
and objects of parrot.
In the above program, we create a class with name Parrot. Then, we define
attributes. The attributes are a characteristic of an object.
Then, we create instances of the Parrot class. Here, blu and woo are references
(value) to our new objects.
Then, we access the class attribute using __class __.species. Class attributes are
same for all instances of a class. Similarly, we access the instance attributes
using blu.name and blu.age. However, instance attributes are different for every
instance of a class.
Methods
Methods are functions defined inside the body of a class. They are used to define
the behaviors of an object.
# instance attributes
def __init__(self, name, age):
self.name = name
self.age = age
# instance method
def sing(self, song):
return "{} sings {}".format(self.name, song)
def dance(self):
return
"{} is now dancing".format(self.name)
# instantiate the object
blu = Parrot("Blu", 10)
# call our instance methods
print(blu.sing("'Happy'"))
print(blu.dance())
When we run program, the output will be:
In the above program, we define two methods i.e sing() and dance(). These are
called instance method because they are called on an instance object i.e blu.
Inheritance
Inheritance is a way of creating new class for using details of existing class without
modifying it. The newly formed class is a derived class (or child class). Similarly, the
existing class is a base class (or parent class).
def __init__(self):
print("Bird is ready")
def whoisThis(self):
print("Bird")
def swim(self):
print("Swim faster")
# child class
class Penguin(Bird):
def __init__(self):
# call super() function
super().__init__()
print("Penguin is ready")
def whoisThis(self):
print("Penguin")
def run(self):
print("Run faster")
peggy = Penguin()
peggy.whoisThis()
peggy.swim()
peggy.run()
Bird is ready
Penguin is ready
Penguin
Swim faster
Run faster
In the above program, we created two classes i.e. Bird (parent class)
and Penguin (child class). The child class inherits the functions of parent class. We
can see this from swim()method. Again, the child class modified the behavior of
parent class. We can see this from whoisThis() method. Furthermore, we extend the
functions of parent class, by creating a new run() method.