Herança do Python
O objetivo desta lição é fornecer uma compreensão da herança do Python usando exemplos.
Sintaxe:
Class BaseClass: {Body} Class DerivedClass(BaseClass): {Body}
Herança do Python
Quando falamos de herança do Python , ele nos permite criar uma classe que herda todos os seus métodos e propriedades de outra classe .
A classe pai é chamada de classe base porque é a classe da qual está sendo herdada.
As classes que herdam de outra classe são chamadas de classes filhas ou classes derivadas.
Herança de classe Python:
- A herança de classe permite que você reutilize o código de classes existentes. Ao criar uma nova classe herdada de uma classe base, você pode herdar atributos e métodos da classe base, reduzindo a duplicação de código e promovendo a modularidade.
- A herança permite criar classes especializadas que herdam e estendem a funcionalidade de uma classe base. Você pode adicionar novos atributos e métodos à classe derivada ou substituir os existentes para fornecer um comportamento especializado. Isso permite hierarquias de classe flexíveis e personalizáveis.
- A herança desempenha um papel crucial na obtenção de polimorfismo em Python. O polimorfismo permite que objetos de classes diferentes sejam tratados de forma intercambiável com base em uma interface comum ou classe base compartilhada. Isso promove a flexibilidade do código e simplifica a lógica do código, permitindo que os mesmos métodos sejam chamados em objetos diferentes com implementações variadas.
- A herança ajuda na organização do código criando uma estrutura hierárquica de classes relacionadas. Ele permite modelar relacionamentos do mundo real e abstrair atributos e comportamentos comuns em uma classe base. Isso promove a legibilidade do código, capacidade de manutenção e compreensão da estrutura subjacente.
- O Python suporta herança múltipla, o que significa que uma classe derivada pode herdar de várias classes base. Esse recurso permite combinar e herdar recursos de várias fontes, fornecendo flexibilidade e reutilização de código ainda maiores. No entanto, requer um gerenciamento cuidadoso para evitar ambigüidades ou conflitos na ordem de resolução do método.
Criando uma classe pai
Quando se trata de herança de classe Python , qualquer classe pode ser uma classe pai, então a sintaxe é idêntica.
Faça uma classe chamada Address, com as propriedades city_name e country_name , e um print_address :
Python Parent Class Example: 1
Agora crie uma classe chamada Student_detail , com as propriedades s_id , s_name e s_age , e um método print_detail :
Python Parent Class Example: 2
Criando uma classe filha
Ao lidar com a herança de classe do Python , a classe pai é passada como um parâmetro ao criar uma classe filha para que a funcionalidade possa ser herdada dela.
Faça uma classe chamada Records que herde os atributos e funções da classe Student_detail :
Python Child Class Example: 1
Lembrete: quando você não precisar fornecer nenhum novo método ou atributo à classe, use a palavra-chave pass.
Portanto, as propriedades e os métodos da classe Student_detail também são compartilhados pela classe Records.
Agora, crie um objeto usando a classe Records e chame a função print_detail no objeto:
Python Child Class Example: 2
Faça uma classe chamada Courses que herde os atributos e funções da classe Student_detail:
Python Child Class Example: 3
Lembrete: quando você não precisar fornecer nenhum novo método ou atributo à classe, use a palavra-chave pass.
Portanto, as propriedades e os métodos da classe Student_detail também são compartilhados pela classe Courses.
Crie um objeto usando a classe Courses e chame a função print_detail no objeto:
Python Child Class Example: 4
Adicionar função __init__()
A partir de agora, desenvolvemos uma classe filha na herança do Python que recebe propriedades e métodos de seu pai.
Para a classe filha, queremos adicionar a função __init__() (em vez da palavra-chave pass ).
Lembrete: Quando a classe é usada para criar um novo objeto, a função __init__() é invocada imediatamente.
Insira o método __init__() na classe Records:
__init__() Function Example: 1
A classe filha não herdará mais a função __init__() do pai se você inserir a função __init__() .
O método __init__() do filho substitui a herança do método __init__() do pai.
Adicione uma chamada ao método __init__() do pai para manter a herança da função __init__() do pai:
__init__() Function Example: 2
__init__() Function Example: 3
Agora que a função __init__() foi implementada corretamente e a herança da classe pai foi mantida, podemos começar a adicionar funcionalidade à função.
Usando a função super()
Quando se trata de herança do Python , há também uma função super() que permitirá que a classe filha herde todos os métodos e propriedades de seu pai:
Super() Function Example: 1
Super() Function Example: 2
Você não precisa especificar o nome do elemento pai ao usar a função super() porque o elemento filho receberá imediatamente os métodos e propriedades de seu pai.
Adicionar propriedades
Crie uma propriedade chamada cgpa na classe Records :
Python Inheritance Add Property Example: 1
Crie uma propriedade chamada course_name na classe Courses :
Python Inheritance Add Property Example: 2
Ao criar objetos de registros, o cgpa 3.67 e course_name é uma variável de Programação Orientada a Objetos incluída nas classes Registros e Cursos, respectivamente.
Você pode fazer isso adicionando outro parâmetro ao método init() .
Ao criar objetos, forneça um parâmetro cgpa e passe o cgpa apropriado :
Python Inheritance Add Property Example: 3
Ao criar objetos, forneça um parâmetro de curso e passe no curso apropriado:
Python Inheritance Add Property Example: 4
Adicionar métodos
Inclua uma função chamada total_marks na classe Records :
Add Method Example: 1
Inclua uma função chamada course_marks na classe Courses :
Add Method Example: 2
Na classe filha, você pode substituir a herança do método pai se o método na classe filha tiver o mesmo nome da função na classe pai.
Benefícios da Herança do Python
-
A reutilização de código é possível porque uma classe filha herda todas as funcionalidades de sua classe pai.
-
A funcionalidade pode ser herdada depois de desenvolvida. A roda não precisa ser reinventada. Como resultado, o código é mais limpo e fácil de manter.
-
Você pode até mesmo definir suas próprias funcionalidades para a classe filha, de modo que apenas funções essenciais serão herdadas e outras funções necessárias serão definidas.