The python is an Object-oriented programming language. This means there exists a concept called 'class' that lets the programmer structure the codes of software in a fashioned way. Because of the use of classes and objects, the programming became easy to understand and code.

Defining Class and Object

A class is a technique to group functions and data members and put them in a container so that they can be accessed later by using a dot (.) operator. Objects are the basic runtime entities of object-oriented programming. It defines the instance of a class. Objects get their variables and functions from classes, and the class we will be creating are the templates made to create the object.

Object-Oriented Terminologies

  • class: Classes are a user-defined data type that is used to encapsulate data and associated functions together. It also helps in binding data together into a single unit.
  • Data Member: A variable or memory location name that holds value to does a specific task within a program.
  • Member Function: They are the functions, usually a block of a code snippet that is written to re-use it.
  • Instance variable: A variable that is defined inside a method of a class.
  • Function Overloading: This technique is used to assign multiple tasks to a single function, and the tasks are performed based on the number of arguments or the type of argument the function has.
  • Operator Overloading: It is the technique of assigning multiple functions/tasks to a particular operator.
  • Inheritance: It is the process of acquiring the properties of one class to another, i.e., one class can acquire the properties of another.
  • Instantiation: It is the technique of creating an instance of a class.

Program for Class in Python


class karl :
    varabl = 'Hello'

def function(self) :
    print ("This is a message Hello")

Another program to explain functions inside a class:


class karl(object) :
    def __init__(self, x, y):
        self.x = x
        self.y = y

def sample(self) :
    print ("This is just a sample code")

In the above code, we created a class name karl using the 'class' keyword. And two functions are used namely __init__() (for setting the instance variable) & sample(). Classes are used instead of modules because programmers can take this class 'karl' & use it or modify it as many times as we want & each one won't interfere with each other. Importing a module brings the entire program into use.

Creating Objects (Instance of A Class)

Let's see an example to show how to create an object:


class student:
        def __init__(self, roll, name):
                self.r = roll
                self.n = name
                print ((self.n))
stud1 = student(1, "Alex")
stud2 = student(2, "Karlos")

print ("Data successfully stored in variables")


Data successfully stored in variables

Accessing Object Variables

We can access the object's variable using the dot (.) operator.
The syntax is:

my object_name.variable_name


print object.varabl

Accessing Attributes

Object attributes can also be accessed by using the dot operator.



print ("total number of students are: %d" %  student.i)

Use of Pre-defined Functions

Instead of using general statements to access attributes, programmers can use the following functions:

  • getattr( obj, name [,default] ) : used to access object's attribute.
  • hasattr( object, name): used for checking whether the attribute exists or not.
  • setattr( obj, name, value ) : set or create an attribute, if it doesn't exist.
  • delattr( obj, name ) : used to delete an attribute.

Built-in Class Attributes

All the Python built-in class attributes can be accessed using dot (.) operator like other attributes.

The built-in class attributes are:

  • __dict__: This attribute is a dictionary that contains the class's -namespace.
  • __doc__: Used for class documentation string.
  • __name__: used as class-name.
  • __module__: used to define the module name for the class in which it is defined. In interactive mode, it is __main__.
  • __bases__: An empty tuple containing the base-class.