Creación de nuevos tipos de datos en Python - Programación Orientada a Objetos

Hola amigos de Internet, mi nombre es Luis y les doy
nuevamente la bienvenida a Mi Diario Python.

Como siempre, es un placer estar nuevamente aquí con todos
ustedes.
En el día de hoy haremos una práctica recomendada por el
mejor desarrollador de software de latino américa, Luis salcedo.

Ahora sí hablando enserio. Hoy crearemos un nuevo tipo de
dato en el lenguaje de programación Python (Como que ya es obvio).

Sí, realizaremos un nuevo tipo de dato cuyo objetivo será el
manejo y manipulación de conjuntos de elementos (vectores). En resumen,
realizaremos una clase llamada vector que realizara las funciones de… bueno…
¡un vector! .

Para que entiendan mejor, terminare con la introducción.
Creación de
un nuevo tipo de dato.
Como sabemos, en los lenguajes de programación: int, string,
float y los demás, todos son tipos de datos. Todos ellos  tienen su respectiva clase.

Para los que conocen bien el tema de la Programación
Orientada a Objetos podrán entender a qué me refiero. Si no tienes conocimiento
sobre la programación Orientada a Objetos, al final del artículo dejare algunos
enlaces con información relacionada al tema.

Bueno, una vez que sabemos que los tipos de datos al fondo
son clases creadas por programadores, ¿Quién dice que no podemos crear nuestros
propios tipos de datos?
Eso es lo que haremos hoy, realizaremos un nuevo tipo de
dato, un vector, el cual igual que los arrays almacenara más de un dato y
podrán ejecutarse en él, operaciones aritméticas.
¿Qué les parece si comenzamos? Empecemos abriendo nuestro
editor de texto preferido y creando un archivo llamado “vector.py” (por
supuesto pueden nombrar a sus archivos como ustedes prefieran).


Lo primero que haremos será crear una clase llamada “Vector”.
En ella empezaremos a escribir los métodos y atributos que el objeto tendrá.
Como sabemos, el método “__init__” se llamara cuando se cree una instancia de
la clase, por ende, esta recibirá todos los elementos, por ellos declaramos que
el argumento que recibe será “*v” y lo convertimos a lista.
Empezamos a escribir los métodos del objeto. “__repr__” es
el método que al llamarlo, nos devolverá una representación de objeto.
El método “__len__” nos devolverá el número de elementos que
el objeto contiene.
“__getitem__” nos devuelve un ítem del objeto, el ítem que
nos devolverá será el de la posición que se le pase como argumento.
Por último, declaramos los métodos que nos permitirán realizar
las operaciones aritméticas: Adición, sustracción y multiplicación.
Excelente, nuestro objeto está preparado para su uso. Podemos
ejecutar el script pero no habrá resultado ya que no  estamos utilizando las herramientas
previamente creadas. Lo que haremos será crear otro script el cual será el que
utiliza y ejecuto el objeto y los métodos creados.
Uso de “Vector.py”:

Muy bien, es momento de ver que puede hacer la clase Vector.
Crearemos un nuevo archivo, pueden llamarlo como ustedes prefieran, yo lo
llamare “vector_test.py”.
Perfecto. Lo primero que hacemos es importar los métodos del
script “vector.py”, eso lo logramos escribiendo “import vector”. Por supuesto,
los scripts deben de  estar en la misma
carpeta. Como pueden observar, he creado dos instancias de la clase y he
colocado algunos elementos.
Excelente, ahora utilizaremos algunos métodos para probar
nuestro objeto. Como pueden observar, he utilizado el método “type” de Python
para ver el tipo de dato de la variable “a”. Tambien pueden observar que
utilizo el método “len” de Python para ver la cantidad de elementos del vector.
Lo siguiente que hago es realizar algunas operaciones aritméticas
con los vectores. También pueden ver que con ayuda de un bucle “for” extraigo
los elementos del vector “a” y los elevo al cuadrado.

Quiero que se fijen en algo. No estoy haciendo uso de los métodos
que he escrito como: “__len__”, “__add__”, “__mul__” y los demás. Esto es por
que estos tipos de  métodos son
especiales para esto. Como pueden observar simplemente escribo  el signo “+” al ejecutar el script, este
sabra inmediatamente que me refiero a “__add__””. Por supuesto, si creamos las
clases sin métodos como estos, al utilizar los caracteres o símbolos no los reconocerá,
ya que estos no se integran de manera automática. Entonces, envez de escribir “a.__mul__(5)”,
simplemente utilizamos el símbolo “*”. ¿Qué les parece? En, artículos anteriores
me dedicare a explicar estos tipos de métodos de manera más técnica, pero por
ahora, sabemos que son de mucha utilidad.
Excelente, que les parece sí ejecutamos el script de prueba:
Este sería nuestro resultado, como pueden observar, se han realizado
todas las operaciones y funciones de manera satisfactoria.
¿Qué te pareció? ¿Alguna duda? No olvides dejar tu
comentario.
Recuerda que puedes descargar todos los archivos presentados
el día de hoy desde mi repositorio de github: https://github.com/LuisAlejandroSalcedo/Creaci-n-de-nuevo-tipo-de-dato-Python.

Mi nombre es Luis, y fue un placer compartir mis conocimientos
con todos ustedes :D.

  1. hinsd dice:

    Quiero decir que haces un trabajo increible con python, cada vez que me llega un correo corro a verlo! Increible! Estoy empezando con python, bueno, soy un nivel intermedio, y algun dia me gustaria ser como tu!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir
White Monkey