A super função em Python

Muhammad Waiz Khan 22 junho 2021
A super função em Python

Este tutorial explicará o propósito e o uso da função super() integrada no Python. Um dos principais conceitos da Programação Orientada a Objetos (OOP) é ​​a herança, na qual uma classe (subclasse) pode acessar as propriedades e métodos da classe pai ou superclasse.

Em várias heranças, uma classe pode herdar propriedades e métodos de várias classes, o que significa que a classe terá várias superclasses. A função super() é útil e usada principalmente no caso de heranças múltiplas, os detalhes e o uso da função super() com exemplos de código serão discutidos neste tutorial.

Use a função integrada super() em Python

A função super() acessa os métodos herdados sobrescritos em uma classe. A função super() é usada na classe filha com herança múltipla para acessar a função da próxima classe pai ou superclasse. A função super() determina a próxima classe pai usando a Ordem de Resolução de Método (MRO). Como se o MRO for C -> D -> B -> A -> object, para D, a função super() irá procurar a próxima classe pai ou método da superclasse na sequência D -> B -> A -> object.

Se a classe for uma classe de herança única, nesse caso, a função super() é útil para usar os métodos das classes pai sem usar seus nomes explicitamente.

A função super(type) retorna um objeto proxy que chama os métodos da classe pai ou irmã do type de entrada. A sintaxe do super() é diferente no Python 2 e 3, podemos usar a função super() no Python 2 para chamar o método herdado mymethod() como super(type, self).mymethod(args) e em Python 3 como super().mymethod(args).

Agora, vamos examinar os códigos de exemplo detalhados do uso da função super() para chamar os métodos herdados da classe filha em Python.

Código de exemplo:

class mysuper_class(object):
    def super_method(self):
        print("Method of the super class was called!")


class myclass(mysuper_class):
    def mymethod(self):
        super().super_method()


a = myclass()
a.mymethod()

Resultado:

Method of the super class was called

Artigo relacionado - Python Class