super() Proxy da classe pai
Última atualização: 2026-09-22
super() Proxy da classe pai
super() retorna um objeto proxy da classe pai; pode ser usado em métodos da subclasse para chamar a implementação da classe pai.
| Categoria | Funções internas |
|---|---|
| Tipo | Função interna |
| Versão do Python | all |
📝 Sintaxe
super([type[, object-or-type]])
⚙️ Parâmetros
| type Opcional | The class; the zero-arg form infers it.(Padrão:None) |
|---|---|
| obj Opcional | An instance or class for MRO resolution.(Padrão:None) |
Retorno:A proxy to the next class in the MRO; methods can be called through it.
💥 Exceções
RuntimeError— Raised when the zero-arg form is used outside a class.TypeError— Raised when obj is not an instance (or subclass) of type.
▶ Exemplo
Edite o código, clique em Executar e veja o resultado no painel de saída:
Saída:
A.hello
B.hello
🏷️ Funções internas relacionadas
💡 Casos relacionados
Mais estudos de caso em breve — aguarde.
❓ Perguntas frequentes
QO que super() faz?
AChama a implementação homônima da classe-pai a partir de um método de subclasse: super().hello() localiza e chama o método hello da 'próxima classe' na MRO.
QPor que super() precisa ser chamado dentro de um método de classe?
AA forma sem argumentos infere automaticamente 'a classe e a instância atuais'; chamá-la fora de uma classe (ex.: numa função comum) levanta RuntimeError: super(): no arguments.
QQuando sou obrigado a escrever super().__init__()?
AQuando a subclasse sobrescreve __init__ e ainda quer que a classe-pai realize sua inicialização; sem isso o __init__ da classe-pai não é executado (a menos que ela seja object).
QEm que ordem super() encontra as classes-pai na herança múltipla?
ASegue a MRO (Method Resolution Order). super() não é 'a classe-pai direta', mas 'a próxima classe na MRO'; na herança múltipla isso trata corretamente a herança em losango e evita chamar a mesma classe-pai duas vezes.