Class and Object in Python

In the previous chapter, we had discussed OOP concepts. In this tutorial, we will learn how to define a class and create an object in Python. Here, we will also discuss constructor in Python.

Define a Class in Python

Let’s begin with how to define a class in Python, to create a class in Python ‘class’ keyword is used. The syntax for creating a class.

class ClassName:
    #statements
    #statements

Now, we will look at an example to create a class Product, with an attribute price.

#creating a class
class Product:
    price=2400

Attribute and Function in the Class

We can define attribute(variable) and behaviour(function) both in the class.

#creating a class, Product
class Product:
    price=2400  

    #define function in class
    def show(self):
        print("Hello")

Create an Object

We need to create an object to access a member of the class. To create an object(instance), we will use the class name.

#creating object
p1=Product()    

#delete an object
del p1

Access Member of the Class

In Python, we can access a member of the class by object reference.

#creating a class, Product
class Product:
    price=2400  

    #define function in class
    def show(self):
        print("Hello")

#creating object
p1=Product()

#access variable
p1.price=1800
print(p1.price)

#access function
p1.show()

Constructor in Python

A constructor is a special type of function used to initialize the member of a class. In Python, __init__() function that begins with a double underscore(_ _), it’s used as a constructor.

  • The constructor is called itself every time, whenever an object is created.
  • It is used to initialize the variables of the class.
  • Parameterised and none parameterised, we can use the constructor in two ways.

constructor without parameter

class Product:
    def __init__(self):
        self.pid=1001
        self.pname="Laptop"

    def show(self):
        print("Product ID of",self.pname,"is",self.pid)

p1=Product()
p1.show()

like a method you need not call a constructor, it is called itself every time whenever we create an object.

constructor with parameter

We can create more than one object of a class. We must pass the parameter at the time of object creation if the constructor is parameterised.

#parameterised constructor example
class Product:
    def __init__(self,pid,pname):
        self.pid=pid
        self.pname=pname

    def show(self):
        print("Product ID of",self.pname,"is",self.pid)

p1=Product(1001,"Laptop")
p2=Product(1002,"Tablet")
p1.show()
p2.show()

self is not a keyword in Python

We have seen self as a keyword in method definition and variable initialisation, it represents the instance of the class. By using self, we can access function and variables anywhere in the class. We can use any word instead of self, but it should be the first parameter of the function. Above example can also write replacing self with other words.

#replace self with any word
class Product:
    def __init__(me,pid,pname):
        me.pid=pid
        me.pname=pname

    def show(me):
        print("Product ID of",me.pname,"is",me.pid)

p1=Product(1001,"Laptop")
p2=Product(1002,"Tablet")
p1.show()
p2.show()