1. Inheritance describes is a kind of relationship between two or more classes, In general getting and storing specific details in the subclass from super class.
2. To create a child class, specify the parent class name inside the pair of parenthesis, followed by it's name.
Example :
Class ChildClass(ParentClass):
pass
3. Every child class inherits all the behaviors exhibited by their parent class.
4. In Python, every class uses inheritance and is inherited from an object by default.
5. Hence, the below two definitions of MySubClass are the same.
Definition 1
class MySubClass:
pass
Definition 2
class MySubClass(object):
pass
1. “object” is known as parent or super class.
2. “MySubClass” is known as child or subclass or derived class.
class Person:
def __init__(self, fname, lname):
self.fname = fname
self.lname = lname
class Employee(Person):
all_employees = []
def __init__(self, fname, lname, empid):
Person.__init__(self, fname, lname)
self.empid = empid
Employee.all_employees. append(self)
“Employee” class is derived from “Person”.
p1 = Person('George', 'smith')
print(p1.fname, '-', p1.lname)
e1 = Employee('Jack', 'simmons', 456342)
e2 = Employee('John', 'williams', 123656)
print(e1.fname, '-', e1.empid)
print(e2.fname, '-', e2.empid)
Output:
George - smith
Jack - 456342
John - 123656
1. In the above example, Employee class utilizes __init __ method of the parent class Person to create its object.
2. Inheritance feature can be also used to extend the built-in classes like list or dict.
3. The following example extends list and creates EmployeesList, which can identify employees, having a given search word in their first name.
Example 1 :
class EmployeesList(list):
def search(self, name):
matching_employees = []
for employee in Employee.all_employees:
if name in employee.fname:
matching_employees.append(employee.fname)
return matching_employees
Extending Built-in Types EmployeesList object can be used to store all employee objects, just by replacing statement all_employees = [] with all_employees = EmployeesList().
Example 2
class Employee(Person):
all_employees = EmployeesList()
def __init__(self, fname, lname, empid):
Person.__init__(self, fname, lname)
self.empid = empid
Employee.all_employees.append(self)
e1 = Employee('Jack', 'simmons', 456342)
e2 = Employee('George', 'Brown', 656721)
print(Employee.all_employees.search('or'))
Output :
['George']
If you have questions, or simply would like to share your thoughts, then feel free to reach out in the comments section below.
Other related blogs:
Classes and Objects in Python 3 | OOP's
Core Python Syllabus for Interviews
How to reverse string in Python ?
What exactly you can do with Python?
Getting started with Jupyter Notebook | Python