Ir al contenido principal

Estructura base de una clase en Python

Recuerdo cuando comencé a programar en Python, en ese tiempo utilizaba Zope, me encantaba programar en DTML, pocas veces en ZPT, y de vez en cuando utilizaba Python mediante el producto (hablando en términos Zopistas), External Methods. Eran tiempos de aprendizaje, recién egresaba de la carrera, tenía trabajo y había mucho que aprender pero ahora aplicado a un entorno real.

Pues bien, programé de varias formas, con más de un método, y recuerdo que en una temporada me negué a la programación orientada a objetos, la causa principal, no entendía, me frustraba y me daba terror, sumándole que sentía que me estancaba en las cosas que tenía que desarrollar (error de principiante).

Ahora, después de varios años, y habiendo experimentado, unos que otros lenguajes de programación, habiendo tenido que mantener, actualizar y evolucionar código, mío y de otros, el contexto me forzó a entender, aprender y utilizar OOP.

Y heme aquí, compartiendo esta entrada:

#$ vi miclasepy.py

#Este es un comentario dentro del archivo.

class MiClasePy():
    """Lo ideal es que siempre pongas una descripción para que los demás programadores puedan saber para qué, y porqué de esta clase."""

    def __init__(self):
        self.instance_var1 = None
        self_instance_var2 = None
        self._INSTANCE_VAR3 = 'http://jonathansalazar.com'


    def.sitio_web(self):
        """Describe qué hace tu función/método. Puede devolver algo con la palabra reservada return o ejecutar un proceso o acción sin tener que emitir un mensaje. En este caso emitimos un mensaje vía return."""

        return f"Este es mi sitio web {self.instance_var3}. Visítame!"


    def modifica_variable(self, valor):
        """Ejecuta una acción en lugar de emitir un mensaje.""""

        self._instance_var2 = f"{valor}"


    def valor_variables(self):
        """Retornamos las variables que inicializaos en el constructor de la clase."""

        return f"instance_var1: {self.instance_var1}, _instance_var2: {self._instance_var2}, _instance_var3: {self._INSTANCE_VAR3}"


Si quisieramos acceder a esta clase desde CLI:

#$ python
py> import miclasepy
py> instance1 = MiClasePy()
py> instance1.sitio_web()
Este es mi sitio web http://jonathansalazar.com. Visítame!

py> instance1.modifica_variable("Mi nuevo valor")
py> instance1.valor_variable()
instance_var1: None, instance_var2: "Mi nuevo valor", instance_var3: 'http://jonathansalazar.com'

Pues aquí lo tienes, es una estructura básica pero es la estructura con la cual puedes comenzar y hacerlo más abstracto.

Saludos,




Comentarios

Entradas populares de este blog

Follow up Java.

Java: So far, so good! A poco más de 20 días de una nueva aventura profesional, la perspectiva de aprovechamiento, tiempos de aprendizaje y transferencia del conocimiento ha sido interesante, en realidad muy positiva. Después de casi 3 semanas de haber comenzado,  el aprendizaje de los conceptos base (knowledge base, término ampliamente utilizado en el área),  la familiarización con la estructura del código, la codificación en sí, comienzan a dar frutos y a tomar forma. ¿Qué hemos aprendido hasta el momento? Estructura del lenguaje Tipos de variables, variables de miembros y cómo declararlas Uso de operadores y concepto de operandos Estructura básica de las clases, objetos, interfaces, packages Herencia de objetos, instancias, atributos estáticos, parámetros, variables, métodos Entre otros temas, esos son los avances. En retrospectiva, el bagaje de conocimiento  previo  (en lo personal)    ha sido de gran impacto en términos positivos y la curva de aprendizaje mu

Ejercicios para mantener la habilidad matemática y de programación

En unos de mis cursos recientemente tomados encontré un sitio que me pareció interesante, y es https://projecteuler.net/ Esta lleno de problemas comunes que podemos practicar y mantener nuestras habilidades matemáticas y de programación. ¡Ejercicios que podemos resolver en nuestros tiempos libres!

Finalmente me encontré con ella y desde el día #1, hemos disfrutado juntos...

Hace más de 4 años que nos mirábamos, pero nos ignorábamos, fue quizá por que no era el momento, yo tenía una relación más dinámica, más demandante, más intensa, sin embargo en ese lapso de 4 años si tuve 3 encuentros con la que hoy ahora comienzo a sentirme entregado: Yoga He hecho Crossfit por mucho tiempo, lo he amado, y me he entregado al 100%, ese ha sido mi receso del día en una vida adulta. En el lapso de los últimos 4 años, un amigo -colombiano por cierto- me invitó a su casa a hacer yoga, él en ese tiempo era maestro de yoga en un pequeño pueblo pegado al mar en las costas de Quintana Roo. Tomé 3 clases con él, y desde la primera, quedé enamorado, sabía que quería intentarlo pero estaba concentrado en un ejercicio de más alto impacto, supongo que la edad también juega un factor importante, al menos eso pienso. Hoy con el contexto que hemos estado viviendo, el encierro y aislamiento principalmente, nuestro reto más importante, toca reconfigurarse a si mismo, probar nuevos campo