Python offers itself not only as a scripting language, but also supports object oriented programming. Classes describes data and provide methods to manipulate that data, all encompassed under a single object.
Introduction to Classes
# Creating a class class Person(object): species = "Homo Sapiens" #Class attribute def __init__(self, name): # special method self.name = name def __str__(self): # special method return self.name def rename(self, renamed): # regular method self.name = renamed print("Now My name is {}".format(self.name))
Now lets make few instances of our class
#Instances Aman = Person("Aman") Kharwal = Person("Kharwal")
# Attributes print(Aman.species) print(Aman.name) #Output Homo Sapiens Aman
We can execute the methods of the class using the same dot operator:
# Methods print(Aman.__str__()) print(Aman.rename("Aman Kharwal")) #Output Aman Now My name is Aman Kharwal
Basic Inheritance
Inheritance in python is based on similar ideas used in other object oriented languages like java, C++ etc. A new class can be driven from an existing class as follows:
class Rectangle(): def __init__(self, width, height): self.width = width self.height = height def area(self): return self.width * self.height
The rectangle class can be used as a base class for determining s square class, as square is a special case rectangle:
class square(Rectangle): def __init__(self, side): # call parent constructor, width and height are both sides super(square, self).__init__(side, side) self.side = side
r = Rectangle(3, 4) print(r.area()) #Output 12
s = square(4) print(s.area()) #Output 16