Python v3 #2 – Definir métodos en una clase

Python
python

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:

Codigo de la clase Robot

  • 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__

Python v3 #2 – Definir métodos en una clase

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s