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