Herança em Python | Herança do Python [com exemplo]

Publicados: 2020-12-14

Python é uma das linguagens de programação mais populares. Apesar de uma transição cheia de altos e baixos da versão Python 2 para Python 3, a linguagem de programação orientada a objetos teve um grande salto em popularidade.

Se você planeja uma carreira como desenvolvedor Python, certamente terá um pagamento mais alto. Como o salário médio de um desenvolvedor Python é de cerca de US $ 119.082 por ano. Mas, antes de prosseguir com o programa de aprendizado Python, aqui está algo que você deve saber primeiro: Herança em Python. Confira nossas certificações em ciência de dados se você estiver ansioso para ganhar experiência em python e outras ferramentas.

Vamos primeiro começar com o que exatamente é herança em Python?

Índice

O que é uma herança em Python?

Assim como um relacionamento pai-filho, a herança funciona em classes derivadas em relação à classe base. Cada classe “derivada” herda de uma classe “base”. A herança é representada em UML ou Unified Modeling Language. É uma linguagem de modelagem padrão que inclui um conjunto integrado de diagramas para ajudar os desenvolvedores a especificar, estruturar e documentar elementos de sistemas de software.

O relacionamento de herança define as classes que herdam de outras classes como classes derivadas, subclasses ou subtipos. A classe base continua sendo a fonte da qual uma subclasse herda. Por exemplo, você tem uma classe Base de “Animal” e um “Leão” é uma classe Derivada. A herança será Leão é um Animal.

Então, a questão é: o que a classe “Leão” herdou de “Animal”?

Uma classe “Leão” herda

  • Interface
  • Execução

Observação: você pode substituir os objetos de classe derivada por objetos de classe base em um aplicativo conhecido como princípio de substituição de Liskov . Indica que se um programa de computador tem o objeto P como subtipo de Q, você pode facilmente substituir P ​​por Q sem alterar as propriedades.

Confira também: Salário de desenvolvedor Python na Índia

Vantagens da herança em Python

  • A herança em Python ajuda os desenvolvedores a reutilizar os objetos.
  • Cada vez que uma classe herda a classe base, ela obtém acesso à funcionalidade do objeto pai.
  • A reutilização devido à herança também é confiável, pois a classe base já foi testada.
  • Baixo tempo e custo de desenvolvimento
  • A padronização da interface entre as classes torna-se fácil.
  • Reduz a redundância de código e ajuda a melhorar a extensibilidade
  • A criação de bibliotecas de classes torna-se fácil.

Tipos de herança em Python

Herança única

Já vimos o que é herança simples - a herança da classe “Derivada” da classe “Base”. Vamos entender através de um exemplo,

classe País:

def ShowCountry(self):

print(“Esta é a Espanha”);

classe Estado (País):

def ShowState(self):

print(“Este é o Estado”);

st =Estado();

st.ShowCountry();

st.ShowState();

Herança multinível

O Python é composto por vários objetos e, com a herança multinível, há infinitas possibilidades de reutilização das funcionalidades da classe. A herança multinível é documentada cada vez que uma classe derivada herda outra classe derivada. Não há limite para o número de classes derivadas que podem herdar as funcionalidades, e é por isso que a herança multinível ajuda a melhorar a reutilização em Python.

Aqui está um exemplo de herança multinível

classe Animal:

def fala (auto):

print("Animal Falando")

#A classe filha Dog herda a classe base Animal

classe Cão(Animal):

def latido (auto):

print("cachorro latindo")

#A classe filha Dogchild herda outra classe filha Dog

class FilhoCão(Cão):

def comer (auto):

print(“Comendo pão…”)

d = FilhoCão()

d.bark()

d.falar()

d.comer()

Herança múltipla

O Python permite que os desenvolvedores herdem várias funcionalidades e propriedades de diferentes classes base em uma única classe derivada. É principalmente um ótimo recurso, pois pode permitir que você herde várias dependências sem ferramentas ou codificação extensas.

Vejamos um exemplo de heranças múltiplas.

Cálculo de classe1:

def Soma(self,a,b):

retorna a+b;

Cálculo de classe2:

def Multiplicação(self,a,b):

retornar a*b;

classe Derivada(Cálculo1,Cálculo2):

def Divide(self,a,b):

retornar a/b;

d = Derivado()

print(d.Soma(10,20))

print(d.Multiplicação(10,20))

print(d.Dividir(10,20))

Confira: Como converter fala em texto com Python

Como identificar uma classe derivada?

O Python vem com uma função issubclass() integrada que ajuda os desenvolvedores a verificar se uma classe é derivada ou base. Uma vez executada esta função, ela retorna com um resultado “True” para subclasse ou classe Derived, enquanto False para classe Base.

Um desenvolvedor pode verificar a classe por meio deste exemplo.

classe minhaIdade:

idade = 36

class meuObj(minhaIdade):

nome = “João”

idade = minhaIdade

x = issubclass(meuObj, minhaIdade)

Como criar uma hierarquia de classes em Python?

A herança em Python ajuda a criar hierarquias de classes. Todas as classes relativas compartilharão uma interface comum para se comunicarem. Uma classe Base define a interface. As classes derivadas podem fornecer especialização específica da interface. Aqui, estamos explorando um modelo de RH para demonstrar a hierarquia de classes.

O sistema de RH processará a folha de pagamento de diferentes trabalhadores da empresa; cada trabalhador é identificado por meio de um ID e possui diferentes cargos na folha de pagamento a serem calculados.

Vamos primeiro criar uma classe de folha de pagamento como o objeto “Base”.

# Em hr.py

classe PayrollSystem:

def calcular_salário(self, trabalhadores):

print('Calculando a folha de pagamento')

print('===================')

para trabalhador em trabalhadores:

print(f'Payroll for: {worker.id} – {worker.name}')

print(f'- Valor do cheque: {worker.calculate_payroll()}')

imprimir(")

O PayrollSystem executa um método .calculate_payroll() que coleta as informações do trabalhador, imprime seu id, nome e verifica o valor da folha de pagamento . Agora, você executa um trabalhador de classe base que aborda a interface padrão para cada tipo de trabalhador:

# Em hr.py

Trabalhador de classe:

def __init__(self, id, name):

self.id = id

self.name = nome

A criação de uma classe base Worker para todos os tipos de trabalhadores na empresa facilita a hierarquia para o sistema de RH. Cada trabalhador recebe um nome e um id. O sistema de RH exige que o trabalhador forneça dados sobre seu salário semanal por meio da interface .calculate_payroll(). A execução desta interface pode diferir de acordo com o tipo de trabalhador.

Deve ler: Perguntas da entrevista em Python

Conclusão

Aqui, aprendemos a criar diferentes classes Python, estabelecer relacionamentos entre elas e até mesmo definir hierarquia de classes. Mas a herança em Python não se limita às funcionalidades mencionadas aqui.

Certificação Avançada em Aprendizado de Máquina e IA : IIT madras, uma das melhores instituições educacionais da Índia, fez uma parceria com a upGrad para fazer um curso avançado de Aprendizado de Máquina para que os indivíduos tenham conhecimento completo de Aprendizado de Máquina com este curso.

Se você está curioso para aprender sobre ciência de dados, confira o Programa PG Executivo em Ciência de Dados do IIIT-B & upGrad, que é criado para profissionais que trabalham e oferece mais de 10 estudos de caso e projetos, workshops práticos práticos, orientação com especialistas do setor, 1 -on-1 com mentores do setor, mais de 400 horas de aprendizado e assistência de trabalho com as principais empresas.

Por que a herança é significativa em Python?

A herança refere-se ao processo de passar as propriedades de uma classe pai para uma classe filha. É um conceito de programação orientada a objetos (OOP) e é significativo em Python. É porque a herança fornece reusabilidade de código, o que significa que, em vez de escrever o mesmo código repetidamente, podemos herdar os atributos necessários em uma classe filha. Também é fácil de entender e implementar, pois descreve um relacionamento do mundo real entre as classes pai e filha. Tem uma natureza transitiva. Como todas as classes filhas herdam propriedades de seus pais, quaisquer subclasses também usarão as funcionalidades da classe pai.

A herança é necessária ao aprender Python?

Sim, aprender herança é necessário ao aprender Python. Aplicativos python maciços exigem um aumento no número de programadores python no mercado atual. Esse aumento levou a um aumento no número de pessoas aprendendo Python. A linguagem de programação Python é rica em noções como herança. Um dos conceitos essenciais nesta linguagem de programação orientada a objetos é a herança. Como a herança permite a reutilização de código, legibilidade e transição de propriedades, aprendê-lo enquanto aprende Python é imperativo. A herança ajuda na criação de código preciso e eficiente.

Em Python, quais tipos de herança não são suportados?

Python permite todas as formas de herança, incluindo heranças múltiplas, ao contrário de outras linguagens de programação orientadas a objetos. É possível construir novas classes a partir de classes pré-existentes usando o conceito de herança. Isso facilita a reutilização do código. Os métodos especificados na classe pai também são usados ​​na classe filha. Embora o C++ também permita esse tipo de herança, falta a metodologia avançada e bem projetada do Python. Python ainda oferece herança híbrida, que nos permite implementar vários tipos de herança em um único pedaço de código. Como a reutilização de código é um ponto forte da herança, é útil em uma ampla variedade de aplicativos ao trabalhar com Python.