UNIDAD 3: CLASES Y OBJETOS

1. CLASES

Una clase es una plantilla genérica de un objeto. La clase proporciona variables iniciales de estado (donde se guardan los atributos) e implementaciones de comportamiento (métodos).

Las clases nos dan la posibilidad de crear estructuras de datos más complejas. En nuestro ejemplo crearemos una clase Mascotas que realizará un seguimiento del nombre y la especie (que pasaremos como atributos).



¿CÓMO DEFINIR UNA CLASE EN PYTHON?

class Mascota(object):

Aquí es donde empezamos a crear nuestra clase (lo hacemos con la palabra class). La segunda palabra (Mascota) es el nombre que le daremos a nuestra clase. La tercera palabra que se encuentra dentro de los paréntesis (object) se conoce con el nombre de herencia (mas tarde hablaré sobre el concepto de herencia). Lo que debemos saber es que "object" es una variable especial en python que se utiliza de herencia cuando creamos una nueva clase en python.



def __init__(selfnombreespecie):
----self.nombre nombre
----self.especie especie


Cuando creamos una nueva mascota, necesitamos inicializarla con un nombre y una especie. El método __init__ (método especial para las funciones que forman parte de una clase) es una función especial en python que inicializa la clase con los atributos que nosotros le pasemos. 

Por ejemplo: si corremos el código Teo = Mascota("Teo", "Perro") , el método __init__ es llamado con los valores Teo"Teo" y "Perro" en las variables selfnombre y especies, respectivamente.


La variable self es una instancia de la clase y es bueno aclarar que no es una palabra reservada de python, cualquier etiqueta utilizada como primer parámetro tendría el mismo valor (se desaconseja el uso de otras etiquetas por un tema de convención). O sea que, cada vez que declaremos un método en python, vamos a tener que agregarle la variable self para que cuando sea invocado el método, Python pase el objeto instanciado y opere con los valores actuales de esa instancia.



¿Qué es un objeto?

Los objetos son la clave para entender la Programación Orientada a Objetos. Si miramos a nuestro alrededor  encontraremos un sin fin de objetos de la vida real: perro, escritorio, televisor, bicicleta, etc...

Tenemos diversos tipos de objetos, los cuales son los objetos clases, objetos instancia y objetos metodos. 

Objetos clase: Los objetos clase soportan dos tipos de operaciones: hacer referencia a atributos e instanciación.
Para hacer referencia a atributos se usa la sintaxis estándar de todas las referencias a atributos en Python: objeto.nombre

Objetos instancia: La única operación que es entendida por los objetos instancia es la referencia de atributos. Hay dos tipos de nombres de atributos válidos, atributos de datos y métodos.
Los atributos de datos se corresponden con las “variables de instancia” en Smalltalk, y con las “variables miembro” en C++. Los atributos de datos no necesitan ser declarados; tal como las variables locales son creados la primera vez que se les asigna algo.
El otro tipo de atributo de instancia es el método. Un método es una función que “pertenece a” un objeto. En Python, el término método no está limitado a instancias de clase: otros tipos de objetos pueden tener métodos también. Por ejemplo, los objetos lista tienen métodos llamados append, insert, remove, sort, y así sucesivamente. Los nombres válidos de métodos de un objeto instancia dependen de su clase. Por definición, todos los atributos de clase que son objetos funciones definen métodos correspondientes de sus instancias.

No hay comentarios:

Publicar un comentario