Curso de introducción a la programación con Python

Autor: Luis FernandoApáez Álvarez

Clase 2: Clases y objetos (Parte II)

Parámetros en los métodos

Primero recordemos la clase Persona que creamos la sesión pasada:

Ahora, dentro del método hablar() podemos agregar más parámetros además del parámetro self, pues recordemos que un método no es más que una función dentro de una clase. Por ejemplo, podemos agregar lo siguiente a dicho método

de tal manera, una vez que instanciamos la clase persona (i.e. creamos un objeto de dicha clase) y llamamos al método hablar() pasándole un parámetro, entonces dicho método nos mostrará en pantalla el mensaje que pasamos por parámetro. Veamos

Método __init__

Por otro lado, a las primeras líneas de código dentro de nuestra clase hacen referencia a características comunes que tendrán (por defecto) nuestros objetos

    # De manera simple podemos agregar estos atributos

    ojos = 2
    brazos = 2
    piernas = 2
    nariz = 1
    hablando = False
    corriendo = False

y que se conoce como estado inicial, el cual es ejecutado inmediatamente después de instanciar la clase.

A dicho estado inicial lo especificaremos mediante un constructor (define la forma en que se crean los objetos). En otras palabras, el constructor es un método especial que le da un estado inicial a los objetos. Ahora bien, trabajando con nuestro ejemplo podemos adaptar el código anterior para crear un método constructor, para ello utilizaremos la sintaxis básica

def __init__(self):

que indica justamente que estamos creando un método constructor. Así, podemos adaptar el código de nuestro ejemplo como sigue

    # Creamos el constructor 

    def __init__(self):
        self.ojos = 2
        self.brazos = 2
        self.piernas = 2
        self.nariz = 1
        self.hablando = False
        self.corriendo = False

Más aún, como ya vimos en la parte inicial de esta sesión podemos colocar parámetros a los métodos. Por ello podemos agregar como un atributo inicial a la clase Persona el nombre que pueda llegar a tomar cada objeto de dicha clase, entre otras cosas más:

Observemos el código self.nombre = nombre en el cual self.nombre hace referencia a un atributo y nombre a la derecha del símbolo = hace alusión al parámetro del método. Luego, para instanciar una clase deberemos dar un valor correspondiente al parámetro del constructor, por ejemplo

Finalmente creemos otro objeto:

Socialmedia.PNG