We are able to program using Object Oriented Programming (OOP) in Python. We can create classes, objects and methods.

Examples

A class is defined in the following way in Python:

class <name_of_class>:

Defining a class called Person:

class Person:
    # Person class

We define methods within a class like so:

class Person:
    def greeting(self):
        print('Hello!')

It is important to note here that self is equivalent to this in other languages, such as Java, C#, and Javascript. It refers to the current instance of an object. self must be used when dealing with methods in a class.

We then can create an instance of the above class as follows:

new_person = Person()

If we wanted to output the type of new_person, we would get the following output:

print(type(new_person)) # <class '__main__.Person'>

In order to define a constructor which is used to initialize an object of a class, we use __init__():

class Person:
    def __init__(self, name):
        self.name = name
    
    def greeting(self):
        return 'Hello!'

new_person = Person('Peter')

print(new_person.name) # Peter
print(new_person.greeting()) # Hello!

We can also implement inheritance. Inheritance is one of the principles of OOP. It can be used in the following manner in Python:

class Person:
    def greeting(self):
        print('Hello!')

class Student(Person):
    def identify(self):
        print('I am a student')

new_student = Student()
new_student.greeting() # Hello!
new_student.identify() # I am a student