Introducción a la Programación
Hasta ahora hemos estado usando objetos de forma totalmente transparente, casi sin ser conscientes de ello. Pero, en realidad, todo en Python es un objeto, desde números a funciones. El lenguaje provee ciertos mecanismos para no tener que usar explícitamente técnicas de orientación a objetos.
Llegados a este punto, investigaremos en profundidad sobre la creación y manipulación de clases y objetos, y todas las operaciones que engloban este paradigma.
2.7.2. ¿Qué es una clase?
Para crear un objeto primero debemos definir la clase que lo contiene. Podemos pensar en la clase como el molde con el que crear nuevos objetos de ese tipo. Es la manera para explicar a nuestra computadora lo que es un objeto.
Las clases básicamente son las plantillas que usamos para
crear nuevos objetos, por ejemplo: podemos crear
una clase de “molde” para
poder crear distintos tipos de objetos “tortas”. Podemos crear clases bandeja o
plato etc. Si bien todas las “tortas” que se hacen con el mismo molde tienen la
misma forma, cada una adquiere atributos individuales después del horneado.
Cosas como el color, la textura, el sabor... pueden llegar a ser muy distintas.
En otras palabras, las tortas comparten un proceso de fabricación y unos
atributos, pero son independientes entre ellas y del propio molde, eso hace que
cada una sea única.
Extrapolando el ejemplo, una clase es sólo un guion sobre cómo deben ser los objetos que se crearán con ella. Así a su vez los objetos creados a partir de ella estarán agrupados en esa misma clase. Crear un objeto a partir de una clase se denomina instanciar.
Una clase es una plantilla (molde), que define atributos (lo que conocemos como variables) y métodos (lo que conocemos como funciones).
Ahora vamos a crear una clase, como ejemplo, para crear distintos tipos (objetos) de perros.
Para crear nuevas clases en Python lo único que tenemos que hacer es escribir la palabra clave class seguido del nombre de tu nueva clase, en este caso es perro, dos puntos (:) y en una nueva línea poner la palabra clave pass. de esta manera:
class perro:
pass
Con esto ya creamos la primera clase personalizada de perro sin embargo todavía está vacía
La clase define los atributos y métodos comunes a los objetos de ese tipo, pero luego, cada objeto tendrá sus propios valores y compartirán las mismas funciones.
Antes de continuar quiero que te detengas un momento y pienses como le explicarías que es un perro a una persona que nunca ha visto uno. Una forma muy fácil para hacer esto es usando atributos y métodos.
Los atributos son básicamente las características físicas que describen a nuestra clase (en este caso es perro), puede ser el color de ojos o el color del pelaje.
Los métodos son las funciones asociadas a una clase o en otras palabras las acciones que puede hacer un perro. Por ejemplo, un perro puede morder o puede ladrar
Recordemos hasta ahora nuestra clase estaba vacía, por lo que vamos a empezar agregando unos atributos para esto vamos a crear dos nuevas variables una se va a llamar ColorOjos y la otra ColorPelaje , seguidas strings vacíos. Porque es una clase que es una plantilla que vamos a usar para crear nuevos objetos o nuevos tipos de perros
class perro:
ColorOjos = ‘ ‘
ColorPelaje = ‘ ‘
pass
Empecemos con un ejemplo
de la vida real: un perro negro primero vamos a usar nuestra clase perro y
vamos
a asignarla a una nueva variable que se va a llamar PerroNegro. Después
vamos a asignarle el color de ojos y color de pelaje para poder diferenciarlo
de otros tipos de perros.
class perro:
ColorOjos = ‘ ‘
ColorPelaje = ‘ ‘
pass
PerroNegro = perro()
PerroNegro.ColorOjos = ‘marrón‘
PerroNegro.ColorPelaje = ‘negro ‘
Sigamos con otro ejemplo esta
vez con un perro color marrón. Lo primero que tenemos que hacer es crear
una
nueva instancia de la clase gato, asignarle a la variable que se llama PerroGris
después le vamos a asignar los dos atributos que hacen a nuestro perro gris
único y diferente de otros perros. Vamos asignarles un color de ojos negro y un
color de pelaje color gris
class perro:
ColorOjos = ‘ ‘
ColorPelaje = ‘ ‘
pass
PerroGris = perro()
PerroGris.ColorOjos = ‘negro‘
PerroGris.ColorPelaje = ‘marrón‘
Definiciones necesarias:
¿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...
¿Qué es un Atributo?
Los atributos
o propiedades de los objetos son las características que puede tener un
objeto: Si el objeto fuera Perro, los atributos podrían ser: tamaño, edad,
color, raza, etc...
¿Qué es un Método?
Los métodos
son la acción o función que realiza un objeto. Si nuestro objeto es Perro, los
métodos pueden ser: caminar, ladrar, saltar, dormir, etc...
¿Qué es una Clase?
Con todos los
conceptos anteriores explicados, se puede decir que 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)
¿Qué es una Instancia?
Ya sabemos que una clase
es una estructura general del objeto. Por ejemplo, podemos decir que la clase
Mascota necesita tener un nombre y una especie, pero no nos va a decir cuál es
el nombre y cuál es la especie, es aquí donde entran las instancias. Una
instancia es una copia específica de la clase con todo su contenido.
Ejemplo: Mateo = Mascota ("Mateo", "Gato")
Aquí podemos decir que Mateo es una instancia de la clase Mascota.
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).