Herança do Python
- Página Anterior Classe/Objeto Python
- Próxima Página Iteração do Python
Herança do Python
A herança nos permite definir classes que herdam todos os métodos e atributos de outra classe.
Classe paiÉ uma classe herdada, também conhecida como classe base.
Classe derivadaÉ uma classe derivada de outra classe, também conhecida como classe derivada.
Criação de classe pai
Qualquer classe pode ser uma classe pai, portanto a sintaxe é a mesma que para criar qualquer outra classe:
Instância
Crie uma classe chamada Person, que contém os atributos firstname e lastname e o método printname:
class Person: def __init__(self, fname, lname): self.firstname = fname self.lastname = lname def printname(self): print(self.firstname, self.lastname) # Use Person para criar um objeto e execute o método printname: x = Person("Bill", "Gates") x.printname()
Criar subclasse
Para criar uma classe que herdará funcionalidades de outras classes, envie o pai como parâmetro ao criar a subclasse:
Instância
Crie uma classe chamada Student, que herdará propriedades e métodos da classe Person:
class Estudante(Pessoa): pass
Comentário:Se você não quiser adicionar nenhuma outra propriedade ou método à classe, use pass
palavra-chave.
Agora, a classe Student possui as mesmas propriedades e métodos que a classe Person.
Instância
Crie um objeto da classe Student e execute o método printname:
x = Student("Elon", "Musk") x.printname()
Adicionar função __init__()
Até agora, já criamos uma subclasse que herdou propriedades e métodos da classe pai.
nós queremos adicionar __init__()
função adicionada à subclasse (não pass
palavra-chave).
Comentário:Cada vez que você usar a classe para criar um novo objeto, a função __init__() será chamada automaticamente.
Instância
Adicionar função __init__() para a classe Student:
class Estudante(Pessoa): def __init__(self, fname, lname): # Adicionar propriedades etc
Quando você adiciona a função __init__(), a subclasse não herdará mais a função __init__() do pai.
Comentário:A função __init__() do filho substitui a herança da função __init__() do pai.
Para manter a herança da função __init__() do pai, adicione a chamada para a função __init__() do pai:
Instância
class Estudante(Pessoa): def __init__(self, fname, lname): Person.__init__(self, fname, lname)
Agora, já adicionamos com sucesso a função __init__() e mantivemos a herança da classe pai, estamos prontos para adicionar funcionalidades na função __init__()
usando a função super()
Python também tem super()
função, isso fará com que a subclasse herde todos os métodos e propriedades do pai:
Instância
class Estudante(Pessoa): def __init__(self, fname, lname): super().__init__(fname, lname)
ao usar super()
função, você não precisa usar o nome do elemento pai, ela herdará métodos e propriedades automaticamente do elemento pai.
adicionar propriedade
Instância
Adicionar o nome graduationyear
adicionar propriedades a Student
Classe:
class Estudante(Pessoa): def __init__(self, fname, lname): super().__init__(fname, lname) self.graduationyear = 2019
Neste exemplo, 2019 deve ser uma variável e passada para a classe Estudante ao criar o objeto student. Para isso, adicione outro parâmetro ao __init__() função:
Instância
Adicionar ano
Parâmetros, e passe o ano correto ao criar o objeto:
class Estudante(Pessoa): def __init__(self, fname, lname, ano) super().__init__(fname, lname) self.graduationyear = year x = Estudante("Elon", "Musk", 2019)
Método Adicionar
Instância
Adicionar o nome bem_vindo
Adicione o método ao Estudante classe:
class Estudante(Pessoa): def __init__(self, fname, lname, year): super().__init__(fname, lname) self.graduationyear = year def bem_vindo(self): print("Bem-vindo", self.firstname, self.lastname, "à classe de", self.graduationyear)
Dica:Se você adicionar um método com o mesmo nome de uma função na classe pai na subclasse, o método herdado será substituído.
- Página Anterior Classe/Objeto Python
- Próxima Página Iteração do Python