How is super used and what is it for in Python classes?
In this article you will learn how is super used in Python classes, and also the best pratices to use this statement.
What’s up programmer, Are you okay? Let’s learn more about Python!
The “super” basically serves to access the methods of the parent class, for the class you are creating
We are faster by not having to type the class name explicitly
And it gives us the possibility to work with multiple inheritance
So let’s see the “super” in practice:
class Mamifero(object): def andar(self): print("O mamífero andou") class Cachorro(Mamifero): def __init__(self): print('O cachorro nasceu.') def andar(self): super().andar() cachorro = Cachorro() cachorro.rolar()
We created the parent class Mamifero, which would be the base class, and the derived class Dog
In the dog class we pass Mamifero as the base class in the arguments, and in the Dog walk method, we call super the base class method, which is Mamifero
Now look at an example of multiple inheritance:
class Base1: def teste(self): print("Base 1") class Base2: def testeB(self): print("Base 2") class MultiHeranca(Base1, Base2): def herancaA(self): return super().teste() def herancaB(self): return super().testeB() c1 = MultiHeranca() c1.herancaA() c1.herancaB()
The results in the code will be:
Methods that have been inherited from distinct base classes
We can use the super in favor of code maintainability, not having to repeat previously created methods
Simply taking advantage of methods from Base classes, referencing them in the same class
And if you need multiple methods, also opt for multiple inheritance that will solve your problem.
Another idea is that if several classes have similar methods, we can create a kind of super class containing these methods and even some variations
In this article, we’ve learned what super is for in Python classes
And also how we can use inheritance and multiple inheritance, from the super method
Although cases of multiple inheritance are rarer, it exists and is easily applicable
Want to learn more about Python? Click here!