Coletânea Python do ZERO às Redes Neurais Artificiais

Fernando Feltrin · Capítulo 104 de 287

Páginas do PDF

Coletânea Python do ZERO às Redes Neurais Artificiais

Herança

 

Basicamente quando falamos em herança, a lógica é exatamente a mesma de uma herança “na vida real”, se sou herdeiro de meus pais, automaticamente eu herdo certas características e comportamentos dos mesmos.

Em programação a herança funciona da mesma forma, temos um objeto com capacidade de herdar certos parametros de outro, na verdade uma classe que herda métodos, parâmetros e outras propriedades de sua classe referência.

Imagine que você tem um objeto Carro com uma série de características (modelo, ano, álcool ou gasolina, manual ou automático), a partir dele é criado um segundo objeto Civic, que é um Carro inclusive com algumas ou todas suas características. Dessa forma temos objetos que herdam características de objetos anteriores.

Em Python, como já vimos anteriormente, a estrutura básica de um programa já é pré configurada e pronta quando iniciamos um novo projeto em nossa IDE, fica subentendido que ao começar um projeto do zero estamos trabalhando em cima do método principal do mesmo, ou método __main__.

Em outras linguagens inclusive é necessário criar tal método e importar bibliotecas para ele manualmente. Por fim quando criamos uma classe que será herdada ou que herdará características, começamos a trabalhar com o método __init__ que poderá, por exemplo, rodar em cima de __main__ sem substituir suas características, mas sim adicionar novos atributos específicos.

Na prática, imagine que temos uma classe Carros, e como herdeira dela teremos duas novas classes chamadas Gol e Corsa, que pela sintaxe deve ser montada com a seguinte estrutura lógica:

Repare que primeiro é declarada a classe Carros, sem parâmetro nenhum, porém com um bloco de código indentado, ou seja, que pertence a ele.

Dentro deste bloco existe o construtor com os tipos de dados aos quais farão parte dessa classe, neste caso, iremos atribuir informações de nome e de cor a esta classe.

Há um segundo método definido onde é uma declaração de descrição, onde será executada a impressão de uma string que no corpo de sua sentença irá substituir as máscaras pelas informações de nome e cor que forem repassadas.

Então é criada a classe Gol que tem como parâmetro Carros, sendo assim, Gol é uma classe filha de Carros.

Na linha de código indentada existe o construtor e a função super( ) que é responsável por herdar as informações contidas na classe mãe. O mesmo é feito com a classe filha Corsa.

A partir disto, de toda essa estrutura montada, é possível criar variáveis que agora sim atribuirão dados de nome e cor para as classes anteriormente criadas.

Repare que é criada a variável gol1 que recebe a classe Gol e passa como parâmetro duas strings, que pela sequência serão substituídas por nome e cor na estrutura da classe. O mesmo é feito criando a variável corsa2 e atribuindo parametros a classe Corsa.

Por fim é dado o comando print, que recebe como parâmetro a variável gol1 seguido da função definida descricao. gol1 receberá os dados atribuídos a classe Gol e .descricao irá executar sua função print, substituindo as devidas máscaras em sua sentença.

O retorno será: O carro: Gol 2019 Completo é branco

O carro: Corsa 2017 2 Portas é vermelho

Em suma, é possível trabalhar livremente com classes que herdam características de outras, claro que estruturas de tamanha complexidade apenas serão usadas de acordo com a necessidade de seu código possuir de trabalhar com a manipulação de tais tipos de dados.