Python Class and Objects
A class represents a blueprint for the object in any programming language. Python has efficient methods for handling classes and an instance of a class, also known as object provides easy access to the attributes and methods of a class. The mapping of a real-world object with the help of class gives programmer flexible way of solving any kinds of problem in Python.
Contents
How to Create a Class in Python?
To create a class in Python, the keyword class is used. The syntax for the creation of a class is a follows:-
class ClassName:
Class attributes
Class methods
The statements in the class consist of attributes that define the characteristics of the object and methods that operate on these attributes.
Let us consider an example of where we are trying to model the real world employee data which contains name and salary.
class Employee: name = "John" salary = 50000; def display(self): print(self.name, self.salary)
So, the above class creates an Employee class which contains two private variables name and salary. The method display is used to display the name and salary of the employee.
How to create an instance of the class?
In order to use the attributes and methods of a class, we need to instantiate the class. The syntax for instantiating the class is as follows:-
<object-name> = <class-name>(<arguments>)
Self in Python?
The first argument of every method in Python programming language is self. which is a reference to the current instance of the class. This is similar to the keyword “this” in Java or C++. While calling the method, we don’t need to provide self in an argument, it is automatically received as a first parameter.
What are Python In-built class functions?
Python provides following built-in functions to work with the class.
SN | Function | Description |
---|---|---|
1 | getattr(obj,name,default) | It is used to access the attribute of the object. |
2 | setattr(obj, name,value) | It is used to set a particular value to the specific attribute of an object. |
3 | delattr(obj, name) | It is used to delete a specific attribute. |
4 | hasattr(obj, name) | It returns true if the object contains some specific attribute. |
Lets us use an example to illustrate the use of the built-in functions
class Student: def __init__(self, name, id, age): self.name = name self.id = id self.age = age s = Student("John Doe", 1001, 21) # prints the attribute name of the object s print(getattr(s, 'name')) # reset the value of attribute age to 23 setattr(s, "age", 23) # prints the modified value of age print(getattr(s, 'age')) # prints true if the student contains the attribute with name id print(hasattr(s, 'id')) # deletes the attribute age delattr(s, 'age') # this will give an error since the attribute age has been deleted print(s.age)
The output of the above program is:-
23
True
Traceback (most recent call last):
File “test.py”, line 26, in <module>
print(s.age)
AttributeError: ‘Student’ object has no attribute ‘age’
What are the built-in class attributes in Python?
Following attributes provides information about the class.
SN | Attribute | Description |
---|---|---|
1 | __dict__ | It provides the dictionary containing the information about the class namespace. |
2 | __doc__ | It contains a string which has the class documentation |
3 | __name__ | It is used to access the class name. |
4 | __module__ | It is used to access the module in which, this class is defined. |
5 | __bases__ | It contains a tuple including all base classes. |
Let us use an example below to have a more clear view,
class Student: def __init__(self,name, id, age): self.name = name self.id = id self.age = age def display(self): print("Name:%s, ID:%d, age:%d" % (self.name, self.id, self.age)) s = Student("John Doe", 1001, 21) print(s.__doc__) print(s.__dict__) print(s.__module__)
The output of the above program is:-
{‘name’: ‘John Doe’, ‘id’: 1001, ‘age’: 21}
__main__