Substituição de método em Python: o que é, como fazer?
Publicados: 2021-09-28Python é uma linguagem de alto nível e de propósito geral que é um aprendizado obrigatório para entusiastas de programação de computadores. Semelhante a outras linguagens de computador amplamente utilizadas como JAVA, C++, Golang, Ruby, etc. Python também é uma linguagem de programação orientada a objetos onde a codificação é dependente de classes e objetos. O conceito permite que os desenvolvedores estruturem códigos simples e reutilizáveis que denotam objetos individuais. Existem vários recursos úteis que as linguagens OOP oferecem, um dos quais é a substituição de método.
Neste artigo, entenderemos o conceito de herança para explorar a substituição de métodos em Python. Vamos começar entendendo o que é uma classe.
Índice
O que é uma Classe?
Classe é um recurso ou instância no paradigma de programação orientada a objetos. É um modelo de codificação de programa estendido dentro de um programa. As classes ajudam os programadores a inserir os dados iniciais de cada objeto (arrays, strings, variáveis, etc.) no momento da criação. Eles também nos permitem definir as características da classe e determinar como eles processarão os dados ou fornecerão entrada. Existem subclasses ou classes filhas nas classes pai ou superclasses definidas em um programa.
O que é herança? Quais são seus benefícios?
A herança na programação orientada a objetos é uma propriedade que permite que os recursos de uma classe sejam herdados para outras classes ou subclasses. Isso ajuda a evitar redundância de dados, compilar melhor o programa e limitar o escopo de cometer erros.
Essa capacidade de uma classe derivar ou herdar características de outras classes é conhecida como herança. A classe cujas características e propriedades são usadas para derivar uma subclasse é chamada de classe Parent.
Aqui estão os benefícios da herança:
- A herança permite que os usuários representem bem os relacionamentos em tempo real.
- Permite que os códigos sejam reutilizados. Também permite que os programadores forneçam mais características a uma classe.
- Permite a transição. Suponha que a classe Q deriva as características da classe W, então as subclasses de Q herdariam automaticamente da classe W.
Tipos de herança
Existem três tipos de heranças que são as seguintes;
1. Herança Única
Na herança simples, uma classe derivada pode herdar recursos de uma única classe pai. Permite a reutilização de códigos e também a adição de novas funcionalidades.
2. Herança múltipla
Refere-se à transferência das características de mais de uma classe pai para uma subclasse. Aqui, os recursos da classe base são herdados automaticamente na subclasse.
3. Herança multinível
Quando os recursos da classe pai e da subclasse são herdados em outra classe derivada, isso é chamado de herança multinível.
O que é a substituição de método em Python?
A substituição de método é um recurso de linguagens de programação orientadas a objetos em que a subclasse ou classe filha pode fornecer ao programa características específicas ou um processo de implementação específico de dados fornecidos que já estão definidos na classe pai ou superclasse.
Quando os mesmos retornos, parâmetros ou nome são inseridos na subclasse como na classe pai, o método de implementação na subclasse substitui o método mencionado na classe pai. Isso é conhecido como substituição de método.
Sua execução depende dos dados usados para invocar o método e não dos dados de referência já fornecidos na classe pai. Se um objeto da classe pai for usado para invocar o método de implementação específico de um programa, a versão do método conforme escrito na classe pai será invocada. Por outro lado, se um objeto da subclasse for utilizado para invocar o método, a execução será de acordo com as características mencionadas na subclasse. Se você é iniciante e gostaria de ganhar experiência em ciência de dados, confira nossos cursos de ciência de dados.
Recursos da substituição de método
Esta seção vai explorar os recursos salientes que a substituição de método em python oferece:
- A substituição de métodos permite o uso de funções e métodos em Python que tenham o mesmo nome ou assinatura.
- A sobrecarga de métodos é um exemplo de polimorfismo de tempo de execução.
- Na substituição de métodos, sempre é necessário usar o recurso de herança.
- A sobrecarga de método é realizada entre classes pai e classes filhas.
- Ele é usado para alterar o comportamento e a implementação de métodos existentes.
- Há sempre a necessidade de um mínimo de duas classes para substituição de método.
Noções básicas sobre substituição de método: herança múltipla e multinível
Heranças múltiplas e multiníveis são dois tipos de heranças oferecidas pela maioria das linguagens de programação orientadas a objetos. Nesta seção, veremos como a substituição de método é usada em várias heranças de vários níveis:
1. Herança múltipla
Neste tipo de herança de classe ou objeto, uma subclasse herda características e características de múltiplas classes ou bases pai. Por exemplo, existem três classes pai diferentes - class.1, class.2, class.3, e há class.a, que é a classe filha que executa recursos de heranças múltiplas. O class.a conterá recursos herdados de todas as três classes base.
Aqui está um programa de exemplo:
# Definindo a classe pai 1
classe Pai1():
# Método show do pai
def show(self):
print("Dentro do Pai1")
# Definindo a classe pai 2
classe Pai2():
# Método show do pai
def exibição (auto):
print("Dentro do Pai2")
#Definindo classe filha
classe Filho(Pai1, Pai2):
# Método de exibição da criança
def show(self):
print(“Criança Interna”)
# Código do motorista
obj = Filho()
obj.show()
obj.display()
Saída:
Criança Interior
Dentro do pai2
2. Herança Multinível
Nesse tipo de herança de classe ou objeto, uma subclasse é herdada diretamente da classe base, já trazendo características da classe pai. É basicamente como a relação pai-filho ou avô-neto. Os recursos da subclasse são exclusivos de sua classe pai. Por exemplo, existe uma classe pai chamada class.Q, e uma subclasse é formada na extensão da class.Q. Aqui, a subclasse pode atuar como a classe base para outra subclasse.
Aqui está um programa de exemplo:
classe Pai():
def exibição (auto):
print(“Dentro do Pai”)
classe Filho (pai):
# Método de exibição da criança
def show(self):
print(“Criança Interna”)
classe GrandChild(Filho):
# Método de exibição da criança
def show(self):
print(“Dentro do Neto”)
#Código do motorista
g = Neto()
g.show()
g.display()
Saída :
Dentro do neto
Pai Interno
Invocação de métodos de classe base dentro de métodos substituídos
Existe um método em que os métodos da classe pai podem ser invocados entre os métodos substituídos. Isso pode ser feito usando os seguintes processos:
Usando o nome da classe
escrever o método de nome de classe no método substituído na subclasse pode invocar o método fornecido na classe pai.
Usando a função de super()
a linguagem de programação do Python oferece uma função chamada super(), que é usada especialmente para se referir à classe pai.
Conclusão
A substituição de método é um dos recursos mais cruciais da linguagem Python. A propriedade encontra amplo uso na programação de aplicativos de ciência de dados e permite uma análise de dados compacta e eficiente. A substituição de método também facilita a compilação de códigos e a verificação. Existem alguns pré-requisitos para usar esse recurso: entender o conceito básico de classes e herança.
Se você quiser aprender a fundo sobre a substituição de métodos em Python, sugerimos que você faça o Mestrado em Ciência de Dados de 18 meses . upGrad oferece este curso de IIIT Bangalore e Liverpool John Moore's University. O curso ensina habilidades como Estatística, Análise Preditiva usando Python, Aprendizado de Máquina, Visualização de Dados, Análise de Big Data e muito mais. Os alunos com um forte conhecimento dos conceitos de Python estão bem posicionados para lidar com assuntos como Deep Learning, Processamento de Linguagem Natural, Business Analytics e Engenharia de Dados.
Entre em contato conosco hoje para iniciar sua jornada de aprendizado!
Diferencie sobreposição e sobrecarga.
A principal diferença entre substituir e sobrecarregar é que a substituição ocorre entre os mesmos métodos ou as mesmas assinaturas, enquanto a sobrecarga ocorre entre os mesmos métodos de classe.
1. A sobrecarga de método exemplifica o polimorfismo de tempo de compilação, enquanto a substituição de método exemplifica o polimorfismo de tempo de execução.
2. A sobrecarga de método não pode ser executada em Python, enquanto a execução de substituição de método é possível sob certas condições.
Quais são os recursos da substituição de método?
Aqui estão os recursos de substituição de método:
1. Ele exemplifica o polimorfismo de tempo de execução.
2. Estabelece uma ligação entre a classe pai e a classe filha.
3. Como ele conecta pelo menos uma classe, precisamos usar o recurso de herança.
4. A substituição de método ajuda você a usar um único nome para mais de uma função.
Usamos substituição de método para implementar o método da classe pai na classe derivada.
Quais são os diferentes tipos de heranças? É possível substituir métodos privados em Python?
Principalmente, a substituição de método usa heranças multiníveis e múltiplas.
Na herança multinível, a subclasse é herdada de uma classe base que consiste em características da classe pai. Mas no caso de herança múltipla, uma subclasse mostra características de mais de uma ou mais classes ou bases pai.
A substituição do método privado não pode acontecer em Java, mas é possível em Python usando um processo conhecido como 'name mangling'.