Use of Python class inheritance

Source: Internet
Author: User
Tags export class

#!/usr/bin/python
# Filename: inherit.py

class SchoolMember:
    '''Represents any school member.'''
    def __init__(self, name, age):
        self.name = name
        self.age = age

        print'(Initialized SchoolMember: %s)'% self.name

    def tell(self):
        '''Tell my details.'''
        print'Name:"%s" Age:"%s"'% (self.name, self.age),

class Teacher(SchoolMember):
    '''Represents a teacher.'''
    def__init__(self, name, age, salary):
        SchoolMember.__init__(self, name, age)
        self.salary = salary

        print'(Initialized Teacher: %s)'% self.name

    def tell(self):
        SchoolMember.tell(self)

        print'Salary: "%d"'% self.salary

class Student(SchoolMember):
    '''Represents a student.'''
    def __init__(self, name, age, marks):
        SchoolMember.__init__(self, name, age)
        self.marks = marks

        print'(Initialized Student: %s)'% self.name

    def tell(self):
        SchoolMember.tell(self)

        print'Marks: "%d"'% self.marks

t = Teacher('Mrs. Shrividya',40,30000)
s = Student(
'Swaroop',22,75)
members = [t, s]
for member in members:
    member.tell()
# works for both Teachers and Students

(SourceFile: Code/inherit. py)

Output

$ python inherit.py
(Initialized SchoolMember: Mrs. Shrividya)
(Initialized Teacher: Mrs. Shrividya)
(Initialized SchoolMember: Swaroop)
(Initialized Student: Swaroop)

Name:"Mrs. Shrividya" Age:"40" Salary: "30000"
Name:"Swaroop" Age:"22" Marks: "75"

How it works

To use inheritance, we use the basic class name as a tuples after the class name when defining the class. Then, we noticed__init__Dedicated useselfTo initialize the basic class of the object. This is important at 01:10 -- Python does not automatically call the constructor of the basic class. You have to call it in person.

We also observe that we add the class name prefix before the method call, and thenselfVariables and other parameters are passed to it.

Note that when we useSchoolMemberClasstellWhen usingTeacherAndStudentOnlySchoolMember.

In addition, in this example, we calltellInsteadSchoolMemberClasstellMethod. It can be understood that python always finds the corresponding type of method first, which is the case in this example. If it cannot find the corresponding method in the export class, it will start to search for it one by one in the basic class. The basic class is specified in the tuples when the class is defined.

Annotation of a term -- if more than one class is listed in the inherited tuples, it is calledMulti-Inheritance.

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.