<< Chapter < Page Chapter >> Page >

Inheritance is extremely important in C++ and Java primarily because of the use of runtime polymorphism in program design.However, due to the lack of polymorphism, inheritance in Python is not nearly as important as in those other two languages. Although it may have some other uses, inheritance in Python appearsmainly to be a convenient way to reduce the amount of typing required to write a program.

According to tutorialspoint--Python Objected Oriented , Python inheritance is

"The transfer of the characteristics of a class to other classes that are derived from it."

While that can sometimes be a useful capability, it is simply one of many useful capabilities that exist in Python

Multiple inheritance

C++ supports a concept know as multiple inheritance , which often results in significant programming errors for novice programmers. Multipleinheritance is so problematic that the designers of Java excluded it from the language and replaced it with a safer alternative known as the Java interface .

Python also supports multiple inheritance. Because of the general lack of safety nets in Python, in my opinion, multiple inheritance is more problematicfor novice programmers in Python than in C++. My advice -- don't use Python multiple inheritance for any serious programming effort until you become a verycapable Python programmer.

Very brief coverage

As a result of the issues mentioned above, this module will provide only a very brief treatment of inheritance in Python. If you need to learn more aboutinheritance, I will refer you to the following documents that are available on the web as of October 2014.

Discussion and sample code

I will present and explain a simple program to give you a taste of inheritance. A complete listing of the program is provided in Listing 6 . The output produced by running the program is shown in Figure 4 . As usual, I will break the program down and explain it in fragments.

Define the superclass

Listing 1 defines a class named Superclass that will be the superclass or the base class for another class named Subclass . In other words, the class named Subclass will inherit from the class named Superclass or will extend the class named Superclass , whichever jargon you prefer. (A visualization of the program uses the word extends to indicate inheritance.)

Depending on your preferred jargon, Superclass will be the base class or the superclass . Subclass will be the derived class or the subclass .

Listing 1 . Define the superclass.
#Define the superclass class Superclass(object):superclassVar = Truedef __init__(self,name): Superclass.superclassVar = nameself.friend = "Tom"

The code in Listing 1 creates a class variable named superclassVar and initializes its value to True .

The code in Listing 1 also defines an initializer or constructor method named __init__ . When this method is executed, it changes the value stored in superclassVar from True to the value of an incoming parameter named name .

The __init__ method also creates an instance variable named friend in the object referred to by self and initializes that variable to contain "Tom" .

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Itse 1359 introduction to scripting languages: python. OpenStax CNX. Jan 22, 2016 Download for free at https://legacy.cnx.org/content/col11713/1.32
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Itse 1359 introduction to scripting languages: python' conversation and receive update notifications?

Ask