Tecnología

Inicio

Cómo utilizar la herencia en Python

Al programar una tarea con complejidad moderada, a menudo es una buena idea para incorporar principios de diseño orientado a objetos en el código. La herencia es un principio que puede permitirá construir código ágil y especializado que trabaja fuera de bases de código existentes. Python soporta tanto sola (una clase derivada de una clase) y múltiple (una clase derivada de muchas clases) herencia.

Instrucciones

Crear una base de la Clase

1 Crear una clase base que sus clases derivadas pueden llamar. Asegúrese de que sus variables y métodos son completamente funcionales.

2 El siguiente es un ejemplo de lo que una clase sin la herencia puede verse como:
class myBaseClass(object):
baseVar = 23
def myFunc:
print 'Bob Dobbs has Slack'

Tenga en cuenta que, de acuerdo con la reciente convención, al definir una clase que no se hereda de los paquetes de usuario, le decimos a la clase a heredar de la clase de Python "objeto".

3 Utilizar el intérprete de Python para asegurarse de que la clase base no tiene errores de sintaxis. Puede utilizar un archivo que contenga toda la clase y ejecuta:
Python myBaseClass.pyIf it does, go back and debug.

Single Use herencia o herencia múltiple

4 Crear una clase que incluye su clase base. Esto se hace escribiendo el nombre de la clase base de paréntesis en la primera línea de su declaración de la clase. Su clase derivada a continuación, puede utilizar las funciones de la clase base, así como la definición de sus propios métodos. Un ejemplo puede ser:
class myDerivedClass(myBaseClass):
def derivedFunc:
myFunc
print baseVar

5 Instanciar y llamar a los métodos de la clase derivada de fuera de la clase:
myDerivedClass.derivedFunc
>>> Bob Dobbs has Slack
23

6 Crear una clase derivada que hereda de varias clases por la simple enumeración secuencial clases base en los paréntesis que siguen a la definición de clase, separados por comas:
class myDerivedClass(myBaseClass1, myBaseClass2, myBaseClass3):
#insert your class code here

Consejos y advertencias

  • Cuando se utiliza la herencia múltiple, los nombres de variables y métodos se utilizan con preferencia de izquierda a derecha en el orden que usted declaró las clases base en su clase hija. En otras palabras, la clase MiClase (A, B, C), importará desde un primer, segundo B y C pasada.
  • Cuando un método y variable de instancia se importan en la misma clase, la variable tendrá prioridad cuando se le llama.
  • El capítulo de Guido Van Rossum sobre la herencia en la "Introducción a Python" libre libro proporciona una mayor cobertura en profundidad sobre los modelos de objetos de Python (ver Recursos más adelante).
  • El artículo de Wikipedia sobre los patrones de diseño proporciona un punto de entrada para el arte del diseño orientado a objetos.
  • Cuando hereda de una clase, DEBE existir el código de la clase base antes de que el código de su clase derivada!