clases funcionan como los planos de los objetos , la definición de lo que hacen y cómo trabajan con otros objetos. Normalmente, una declaración de clase es similar a este ejemplo :
clase MyClass :
//definición de la clase
La definición de clase es donde el programador establece qué acciones que un objeto puede hacer, y qué tipo de información que contiene. Un método básico para una clase es el método "init " , que dicta lo que ocurre cuando se crea un objeto de la clase :
def __ init__ ( self):
self.x = 1
self.y = 2
Este método de clase MyClass se asegurará de que cada objeto MyClass tiene un valor de x y y, igual a 1 y 2 , respectivamente .
clases derivadas
Algunas clases compartirán una funcionalidad similar con otras clases , sino que se extiende esa funcionalidad. Por ejemplo , tomar una clase de " bola " que puede representar un balón de fútbol ( en el código) . Supongamos también que existe una " esfera " clase que representa una esfera simple y contiene el radio (r ) y un método para calcular el área de superficie ( Sarea ( ) ) . En este caso , la única diferencia entre los dos es que clase de " bola " necesita datos adicionales para grabar el color . Por lo tanto , en lugar de volver a escribir el código de " Sphere " en " bola ", el programador sólo deriva bola de Esfera :
bola clase
( Esfera) :
Ahora , la clase Ball puede acceder a cualquier método o los datos de la clase Sphere ( r , Sarea ()), y utilizarla para sí mismo) .
Reemplazar métodos base
El programador entonces tal vez deseen asegurarse de que cada bola tiene un color inicial junto su radio. Función " init" La clase Sphere ' se parece a esto :
def __ init__ ( self):
self.r = 5
Así cada objeto esfera tiene un radio predeterminado 5 . Bola de Clase puede reemplazar este método , definiendo en su propia clase. Así método "init " de la bola podría tener este aspecto :
def __ init__ ( self):
self.color = red
Así que ahora el color predeterminado de la bola es de color rojo .
Anulación y utilizar una Base Método
Pero debido a que la bola "init " anula la clase base " init ", la clase base " init" nunca se ejecuta. Esto es necesario . En Python , el método predominante puede llamar al método que está anulando como par de su ejecución :
def __ init__ ( self):
Sphere.__init__ (auto )
auto . color = red
Esto asegura que se produce la inicialización de base, que la bola tiene un radio y un color .