Google+ Seguidores

martes, 22 de mayo de 2018

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 comentario :
Write comentarios
  1. 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!

    ResponderEliminar

Tu comentario es importante y nos motiva a seguir escribiendo...

Powered by Blogger .