Como estender classes para fazer novas classes em python
Como você pode imaginar, criar um completamente funcional, classe de produção de grau
Conteúdo
Substituindo as características que você não precisa e adicionando novas funcionalidades permite criar novas classes relativamente rápido e com muito menos esforço de sua parte. Além disso, porque o código pai já está testado, você não tem que colocar bastante tanto esforço em assegurar que sua nova classe funciona como esperado.
Construir a classe criança
classes pai são normalmente supersets de alguma coisa. Por exemplo, você pode criar uma classe pai chamada Carro e em seguida, criar classes filhas de vários tipos de carros em torno dele.
Video: Aulas Python - 127 - Decoradores de Métodos e Classes
Neste caso, você constrói uma classe pai chamada Animal e usá-lo para definir uma classe criança chamada Frango. Claro, você pode facilmente adicionar outras classes criança depois de ter Animal no lugar, tal como um Gorila classe. No entanto, para este exemplo, você constrói apenas a classe um pai e um filho.
classe Animal: def __init __ (self, Name =", Age = 0, tipo ="): Self.Name = Nameself.Age = Ageself.Type = Typedef GetName (self): return self.Namedef SetName (self, nome): self.Name = Namedef getAge (self): return self.Agedef setAge (self, Idade ): self.Age = Agedef GetType (self): return self.Typedef settype (self, Type): self.Type = Typedef __str __ (self): return "{0} é um {1} envelhecido {2}".format (self.Name, self.Type, self.Age) classe Chicken (Animal): def __init __ (self, Name =", Age = 0): self.Name = Nameself.Age = Ageself.Type = "Frango"Settype def (self, Type): print ("Desculpe, {0} será sempre um {1}".format (self.Name, self.Type)) def MakeSound (self): print ("{0} diz Cluck, Cluck, Cluck!".format (self.Name))
o Animal classe acompanha três características: Nome, Era, e Tipo. Um aplicativo de produção provavelmente rastrear mais características, mas essas características fazem tudo o necessário para este exemplo. O código também inclui os assessores requeridas para cada uma das características. o __str __ () Método completa o quadro, imprimindo uma mensagem simples informando as características animais.
o Frango classe herda da Animal classe. Observe o uso da Animal entre parênteses após o Frango nome da classe. Esta adição diz ao Python que Frango é um tipo de Animal, algo que vai herdar as características de Animal.
Observe que o Frango construtor aceita apenas Nome e Era. O usuário não tem que fornecer um Tipo valor, porque você já sabe que é uma galinha. Este novo construtor substitui a Animal construtor. Os três atributos estão ainda em vigor, mas Tipo é fornecido directamente no Frango construtor.
Alguém poderia tentar algo engraçado, como a definição de seu frango como um gorila. Com isto em mente, o Frango classe também substitui a SetType () setter. Se alguém tenta mudar o Frango Tipo, esse usuário recebe uma mensagem, em vez da tentativa de mudança. Normalmente, você lidar com esse tipo de problema usando uma exceção, mas a mensagem funciona melhor para este exemplo, tornando a técnica de codificação mais clara.
Finalmente, o Frango classe adiciona um novo recurso, MakeSound (). Sempre que alguém quer ouvir o som de uma galinha faz, ele pode chamar MakeSound () a pelo menos vê-lo impresso na tela.
Testando a classe em um aplicativo
testando o Frango classe também testa a Animal classe até certo ponto. Algumas funcionalidades é diferente, mas algumas classes não são realmente feitos para serem usados. o Animal classe é simplesmente um pai para tipos específicos de animais, tais como Frango. Os passos que se seguem demonstram a Frango classe para que você pode ver como a herança funciona.
Abra uma janela do Python Arquivo.
Você vê um editor no qual você pode digitar o código de exemplo.
Digite o seguinte código para a janela - pressione ENTER após cada linha:
Video: Parte 24 - Como usar parâmetros de Classe em Python 3
importar AnimalsMyChicken = Animals.Chicken ("surtida", 2) de impressão (MyChicken) MyChicken.SetAge (MyChicken.GetAge () + 1) de impressão (MyChicken) MyChicken.SetType ("Gorila") Print (MyChicken) MyChicken.MakeSound ()
O primeiro passo é importar o animais módulo. Lembre-se que você sempre importar o nome do arquivo, não a classe. o Animals.py arquivo realmente contém duas classes neste caso: Animal e Frango.
O exemplo cria uma galinha, MyChicken, chamada Sally, que é a idade 2. Em seguida, ele começa a trabalhar com MyChicken de várias maneiras.
Por exemplo, Sally tem um aniversário, então o código atualiza a idade de Sally por 1. Observe como o código combina o uso de um setter, SetAge (), com um getter, GetAge (), para executar a tarefa. Após cada alteração, o código exibe os valores objeto resultante para você. O passo final é deixar Sally dizer algumas palavras.
Escolha Executar → Run Module.
Você vê cada um dos passos utilizados para trabalhar com MyChicken. Como você pode ver, usando a herança pode simplificar muito a tarefa de criar novas classes quando um número suficiente de classes têm em comum para que você pode criar uma classe pai que contém uma certa quantidade de código.