Cómo extender las clases para hacer nuevas clases en python

Video: Python Curso 5.1 - Clases, Atributos y Métodos (HD)

Como se pueden imaginar, crear un completo y funcional, clase de calidad industrial en Python (que se utiliza en una aplicación real en realidad se ejecuta en un sistema al que se accede por los usuarios) es mucho tiempo porque las clases reales realizan una gran cantidad de tareas. Afortunadamente, Python admite una función llamada herencia. Mediante el uso de la herencia, puede obtener las características que desee de una clase padre al crear una clase hija.

Anulación de las características que usted no necesita y la adición de nuevas características le permite crear nuevas clases relativamente rápido y con mucho menos esfuerzo de su parte. Además, debido a que el código de los padres ya se prueba, usted no tiene que poner bastante como mucho esfuerzo en asegurar que su nueva clase funciona como se esperaba.

La construcción de la clase hija

clases para padres son normalmente supersets de algo. Por ejemplo, puede crear una clase padre llamado Coche y luego crear clases hijas de diferentes tipos de vehículos a su alrededor.

En este caso, se construye una clase padre llamado Animal y lo utilizan para definir una clase de niño llamado Pollo. Por supuesto, usted puede agregar fácilmente otras clases hijas después de que ha Animal en su lugar, tal como una Gorila clase. Sin embargo, para este ejemplo, se construye simplemente la clase un padre y un hijo.

clase de animales: def __init __ (self, Name =", Edad = 0, Tipo ="): Self.Name = = Nameself.Age Ageself.Type = Typedef GetName (auto): volver self.Namedef SetName (sí, Nombre): self.Name = Namedef GetAge (auto): volver self.Agedef setAge (auto, Edad ): self.Age = Agedef GetType (auto): volver self.Typedef SetType (sí, el tipo): self.Type = typedef __str __ (self): return "{0} es un {1} envejecido {2}".formato (self.Name, self.Type, self.Age) Clase de pollo (Animal): def __init __ (self, Name =", Edad = 0): self.Name = Nameself.Age = = Ageself.Type "Pollo"SetType def (sí, el tipo): print ("Lo sentimos, {0} siempre será un {1}".formato (self.Name, self.Type)) def MakeSound (auto): print ("{0} dice cloqueo, cara, cara!".formato (self.Name))

los Animal clase seguimiento de tres características: Nombre, Años, y Tipo. Una aplicación de la producción probablemente un seguimiento más características, pero estas características tienen todo lo necesario para este ejemplo. El código también incluye los descriptores de acceso requeridos para cada una de las características. los __str __ () Método completa la imagen mediante la impresión de un simple mensaje que indica las características de los animales.

los Pollo clase hereda de la Animal clase. Observe el uso de Animal entre paréntesis después de la Pollo nombre de la clase. Esta adición le dice a Python que Pollo Es un tipo de Animal, algo que va a heredar las características de Animal.

Observe que el Pollo constructor acepta solamente Nombre y Años. El usuario no tiene que suministrar una Tipo valor porque ya sabe que es un pollo. Este nuevo constructor anula la Animal constructor. Los tres atributos son todavía en su lugar, pero Tipo se suministra directamente en el Pollo constructor.

Alguien podría probar algo divertido, como la fijación de su pollo como un gorila. Con esto en mente, el Pollo clase también anula la SetType () setter. Si alguien trata de cambiar el Pollo tipo, el usuario recibe un mensaje en lugar del intento de cambio. Normalmente, se trata este tipo de problema mediante el uso de una excepción, pero el mensaje llegue mejor a este ejemplo al hacer la técnica de codificación más clara.

Finalmente, el Pollo clase añade una nueva característica, Hacer sonido(). Cada vez que alguien quiere escuchar el sonido de un pollo hace, puede llamar Hacer sonido() a por lo menos verlo impreso en la pantalla.

Prueba de la clase en una aplicación

Prueba de la Pollo clase también pone a prueba la Animal clase hasta cierto punto. Parte de la funcionalidad es diferente, pero algunas clases no son realmente destinado a ser utilizado. los Animal clase no es más que un padre para determinados tipos de animales, tales como Pollo. Los pasos siguientes demuestran la Pollo la clase de manera que se puede ver cómo funciona la herencia.

Video: Python Tutorial 27 - Metodos de una Clase

  1. Abrir una ventana de Python Archivo.

    Ves un editor en el que puede escribir el código de ejemplo.

  2. Escriba el siguiente código en la ventana - presione ENTRAR después de cada línea:

    Video: Tutorial Python: Clases y Objetos en Python

    importar AnimalsMyChicken = Animals.Chicken ("Salida", 2) de impresión (MyChicken) MyChicken.SetAge (MyChicken.GetAge () + 1) de impresión (MyChicken) MyChicken.SetType ("Gorila") De impresión (MyChicken) MyChicken.MakeSound ()

    El primer paso es importar el animales módulo. Recuerde que siempre importar el nombre del archivo, no a la clase. los Animals.py archivo en realidad contiene dos clases en este caso: Animal y Pollo.

    El ejemplo crea un pollo, Mi pollo, llamada Sally, que es la edad 2. A continuación, comienza a trabajar con Mi pollo de varias maneras.

    Por ejemplo, Sally tiene un cumpleaños, así que el código actualiza la edad de Sally en 1. Nótese como el código combina el uso de un setter, Edad establecida(), con un captador, GetAge (), para realizar la tarea. Después de cada cambio, el código muestra los valores de los objetos resultantes para usted. El último paso es dejar de Sally decir unas pocas palabras.

  3. Seleccione Ejecutar → Módulo Run.

    Ves cada uno de los pasos que se utilizan para trabajar con Mi pollo. Como se puede ver, el uso de la herencia puede simplificar en gran medida la tarea de crear nuevas clases cuando un número suficiente de las clases tienen en común para que pueda crear una clase principal que contiene una cierta cantidad de código.

Artículos Relacionados