
En el anterior post creamos una clase e instanciamos dos objetos de ella. Pero la clase no hacía nada de nada.
En este post voy a crear una clase un poco más seria, tan seria que voy a construir robots!!! 😀
Crearemos la clase Robot que contendrá dos propiedades (nombre, habilidad).
Abrimos el IDLE y tecleamos:
- Para crear la clase escribimos class Robot:
- y para crear un método lo hacemos con la palabra reservada def
- Hemos hecho tres metodos: cobrarVida, darNombre y darHabilidad
- creamos la instancia robotUno
- a la que le damos vida, ponemos un nombre, y le damos una habilidad.
Lo importante aquí (a parte de darse cuenta de que las sentencias no acaban en punto y coma) es entender lo del self.
Como ya sabemos que un clase es una especie de molde para crear objetos, cuando creamos la clase, la única forma de hacer referencia al futuro objeto creado con este molde es la palabra self. Es decir, self representa el objeto en el momento de ejecutarse el método. Si vienes de otro lenguaje self viene a ser this.
robotUno = Robot()
Creamos una instacia de la clase Robot.
robotUno.cobrarVida()
Se crean las propiedades nombre y habilidad con unos valores predeterminados. Gracias a self el método se ejecuta sobre el objeto concreto robotUno.
robotUno.darNombre("R2D2")
Se ejecuta el método darNombre sobre el objeto robotUno. Le pasamos un String que simboliza el nombre del robot.
robotUno.darHabilidad("hacer tostadas")
Se ejecuta el método darHabilidad sobre el objeto robotUno. Le pasamos un String que simboliza la habilidad del robot.
Una vez hecho esto podemos recoger los valores de las propiedades nombre y habilidad que tiene el robotUno.
robotUno.nombre robotUno.habilidad
Creo que con una clase tan sencilla se entiende todo bastante bien.
En el siguiente post quitare el método cobrarVida() por un método constructor. En Python al constructor se le llama __init__