×

How to create a class in python

In any programming language, a class is a user-defined plan or blueprint using which objects or instances of the class are created.

You may wonder why we need classes in programming. We can create something like a variable or a structure, store what we want, and use it. So below are the reasons:

  • A class can have its attributes – variables and functions with pre-stored values and functionalities in the class definition.
  • Example situation: If we want to store the data of different age groups of children and their details in an orphanage :
    • We cannot just create a list and keep on storing the ages and names of the children without any organization.
    • Creating multiple lists for multiple age groups – one list to store ages, one for names, another to match – becomes complex and leads to ambiguity.

Syntax:

#Definition of a class

class class_name:
	#body of the class
	#variables
	#functions
		#body of the functions

Important points about class in Python

  1. “class” is a keyword in Python libraries.
  2. A class name must be capitalized/
  3. Attributes are the variables owned by the class (declared inside the class) that the created objects can use.
  4. Methods are the functions owned by the class (defined inside the class) that the created objects can use.
  5. The created objects using the dot (.) operator use these attributes and methods of a class.

Example program:

Class Employee:
	#Attributes like name, id
	#Methods 

To use the attributes in the class, we need to create objects for the class. Learn how to create an object: How to create an object in python?

The __init__ method

For Python class, we need to learn about the self variableand the __init__ method.

  • The __init__() method is a constructor which will be invoked by default when a new object is created and initialized.
  • “self” is not a keyword in Python. It is a special variable. When we declare a method in a class, we need to declare the first argument as self.
  • We will be able to access the attributes and the methods of the class using this self-argument. It holds the arguments to the attributes.
  • Even in the init method, we must declare the first argument as self.
  • Self determines the current instance of the class; In the case of the init method, it refers to the newly created object, while in other methods, it refers to the object whose method is called.
  • Even if we want to create a method with no arguments, we need to keep the self variable as the only argument in the method.

The syntax will look like this:

class Class_Name: 
	attribute (variable)1
	attribute (variable)2  
	...
	attribute (variable)N
	
	def __init__(self,arg1,...,argn):
	
	def Method_name1(self,arg1,...,argn):
	
	def Method_name2(self):
	...
	def Method_nameN(self,arg1,...,argn):

Example programs:

# Using the init method

class Student:
	def __init__(self,name,age,email):
		self.name = name
		self.age = age
		self.email = email
name = input("Please enter the name of the student1: ")
age = int(input("Please enter the age of the student1: "))
stud = Student(name,age,'santhosh@gmail.com')
name = input("Please enter the name of the student2: ")
age = int(input("Please enter the age of the student2: "))
stud2 = Student(name,age,'')
print("Stud_1.name =",stud.name)
print("Stud_2.name =",stud2.name)

Output:

Please enter the name of the student1: Santhosh
Please enter the age of the student1: 19
Please enter the name of the student2: Rakesh
Please enter the age of the student2: 19
Stud_1.name = Santhosh
Stud_2.name = Rakesh

Understanding: In the program, we created a " Student " class. Using the __init__ method, we defined the three attributes of the class. We created two objects with inputs for attributes. Using the created objects, we accessed the names of both students.

#Using more methods in the class

class Person_details:
	def __init__(self,name):
		self.name = name
	def setName(self,name):
		self.name = name
	def getName(self):
		return self.name
		
name = input("Enter the  name of the person1: ")
p1 = Person_details(name)
name = input("Enter the name of the person2: ")
p2 = Person_details(name)
print("Person P1 name:",p1.getName())
print("Person P2 name:",p2.getName())

Output:

Enter the name of the person1: Mahesh
Enter the name of the person2: Rakesh
Person P1 name: Mahesh
Person P2 name: Rakesh

Understanding:

Here, we used two methods, setName() and getName(). In the setName() function, we are assigning the name given to the attribute. In the getName() function, we are using the return statement and returned the name.

Attributes for an Empty class

Python language allows the programmer to create attributes of an object declared for an empty class. We can even modify the values of attributes in different objects.

Below is an example of an empty class “Student_info”. In the body of the program, we created an object Stud_1 for the class and gave values to three attributes of the class:

class Student_info:
	pass
Stud_1 = Student()  
Stud_1.name = 'Sonu'
Stud_1.age = 19
Stud_1.graduate = 'B-tech'
print("Stud_1.name:",Stud_1.name)
print("Stud_1.age:", Stud_1.age)
print("Stud_1.graduate:", Stud_1.graduate)

Output:

Stud_1.name: Sonu
Stud_1.age: 19
Stud_1.graduate: B-tech

We discussed above that the init method is a constructor. Diving deep into constructors in python.

Constructors in Python

A constructor can be understood as a type of a method. We use this to perform actions or tasks like initializing variables and other tasks that must be done when a new object is created.

In Python, we use the same __init__(self) in all classes. The conventions of the name: Two leading and trailing underscores. It is designed this way to prevent ambiguity with user-defined methods.

If we create a class without using the constructor, then, by default, Python creates a constructor which doesn't have functionality other than instantiating the created object.

Let’s summarize the learned topic till now:

Every class in Python will consist of 3 key partners:

  1. The constructor
  2. Attributes of the class
  3. Methods of the class

We create a class. Inside the class, we build the constructor __init__() with self argument and other arguments that we bind with the class attributes inside the body. So, when we create an object with some parameters, these parameters will occupy the arguments and be stored in the class attributes.

It is the same in normal methods, but in normal methods, we will have a task going on, but in the init, it is only about initializing the arguments.

The self keyword helps bind the parameters and arguments of the constructor and other methods. It must be declared as the first argument in any method.


Related Topics

Fsolve in Python

Python Programming Language Python programming language is one of the most used programming languages, as it is used widely in the field of software and data analysis, web development, etc. It...

3 minutes read.

How to create a list in Python?

How to create a list in python Python is known for its versatility and its data structures help us to perform different kinds of operations on various datasets irrespective of their...

4 minutes read.

any() Keyword in python

“any” keyword in python This page contains all the information about any () Keyword in python, how it is used with lists, tuples, dictionaries, sets, and what its function is? Python...

3 minutes read.

How to Iterate through a Dictionary in Python

In this tutorial, we will learn how to interate throught the dictionary in the Python programming, using different approaches with example. Introduction to Dictionary in Python Dictionary is a special type of...

4 minutes read.

Python History

Python is one of the top trending, widely-used programming languages. Python is a general-purpose programming language. Python language is known for its features. Some features are given below: SimplisticFree and open...

4 minutes read.

Python set()

Python set() Class The set() class in Python returns a new set object, optionally with elements taken from iterable.  Syntax class set([iterable]) Parameter iterable : This parameter represents a sequence, collection or an iterator object Return This function returns a...

1 minute read.

Python MongoDB Tutorial

An Introduction to MongoDB MongoDB is a document-oriented database application. It is an Open-source and platform-independent program. MongoDB is similar to few NoSQL databases that store the data in the documents...

17 minutes read.

Python Parser

Introduction : Parsing is referred to as the processing and translation of a Python program into machine language. In general, we could indeed say that the command parse is used to...

4 minutes read.

Bar Plot in Python

A bar chart or bar graph displays categorical data using rectangular bars with heights or lengths proportionate to the values for the data distributed in the dataset. In a bar...

16 minutes read.

Sentence to python vector

Conversion of a Sentence to Vector in Python Before starting the tutorial, let’s just recap about the vector and the respective package that has to be imported in Python. Python Vector: Putting simply,...

3 minutes read.

Python String Negative Indexing

This page contains all the information how to use “Negative indexing“ in Python with the help of using slicing. What is an Index? An index is a numeric value, which is assigned...

3 minutes read.

Colors in Python

Adding colour to your visualisations will help them come to life. Even if you know the colours you want to use, picking good ones and putting them into practise might...

4 minutes read.

Python int()

Python int() class The int() class in Python returns an integer object constructed from a number or string x. Syntax class int(x, base=10) Parameter x: This parameter represents a number or a string that can be converted into...

1 minute read.

Simple GUI calculator using PyQt5 in Python

GUI: The user is provided with information using manipulable visual widgets that don't require command-line input. These interface components respond to the user's interactions per the pre-programmed script, assisting each user's...

4 minutes read.

Python Sys Stdout

Python Programming Language: Python programming language is one of the most used programming languages, as it is used widely in the field of software and data analysis, web development, etc. It...

3 minutes read.

Python Program to Check Leap Year

Python Program to Check Leap Year Leap year: We all know that each year has 365 or 366 days. But whenever a year has 366 days, then the year is said...

2 minutes read.

XXhash Python

Python: Python programming language is one of the most used programming languages, as it is used widely in the field of software and data analysis, web development, etc. It is said...

6 minutes read.

Installing Packages in Python

It's critical to understand that the term "package" here refers to a collection of software that must be installed (i.e. as a synonym for a distribution). It has nothing to...

6 minutes read.

Python Dictionary fromkeys() method

Python Dictionary fromkeys() method The dictionary.fromkeys() method in Python creates a new dictionary from the given sequence of elements and returns a dictionary with the specified keys and values. Syntax dictionary.fromkeys(sequence[, value]) Parameter sequence- This...

1 minute read.

Working with files in Python

Python is an object-oriented high-level programming language. Python has dynamic semantics and has high-level built-in data structures which support dynamic typing and dynamic binding. Python provides rapid development. It has an...

5 minutes read.