Entradas

Mostrando las entradas etiquetadas como herencia

Las propiedades (Property) de Python

Imagen
Cuando estamos trabajando con clases, en Python , lo normal es crear unos atributos y unos métodos que accedan a dichos atributos, para modificar, asignar o devolver su valor. Para ello se aconseja que los atributos sean ocultos, de manera que únicamente, a través de los métodos, se pueda acceder a sus valores. Por ejemplo, una clase que defina a una persona puede ser la siguiente: class ser_humano(object): def __init__(self, edad, altura, peso): self.__edad=edad self.__altura=altura self.__peso=peso def getPeso(self): return self.__peso def setPeso(self, peso = None): self.__peso = peso def getAltura(self): return self.__altura def setAltura(self, altura = None): self.__altura = altura def getEdad(self): return self.__edad def setEdad(self, edad = None): self.__edad = edad Como se puede observar al instanciar la clase se tienen que pasar los valores de los atributos para la inicialización. Para modifi...

Persistencia y herencia de objetos, con Python.

Imagen
Hola. En este artículo vamos a ver las ventajas de uno de los pilares fundamentales de la programación orientada a objetos, la herencia , así como la persistencia de objetos, una forma de guardar información en disco sin necesidad de bases de datos ni ficheros estructurados. ¿Cómo? Guardando directamente el objeto en disco. Como tantas veces se ha comentado en este blog, hay que ser ordenado, y aquí vamos a poner en práctica uno de mis pilares fundamentales de programación , a saber: Si un objeto puede guardarse y volver a estados diferentes, podría ser interesante. En primer lugar vamos a crear una clase base , de la cual se pueda heredar ciertos métodos que nos serán de utilidad en todas las clases que hagamos después. Es decir, la estrategia consiste en crear nuestra propia librería de clases , con ciertas clases y/o funciones si se precisara, lo más genéricas posibles, para poder reutilizar el código escrito. Una clase base genérica heredará del objeto base de Python , esto es, ...

Clases y objetos en Python, para entendernos.

Imagen
En Python todo es un objeto, lo que facilita mucho las cosas a la hora de programar. En este post vamos a ver lo sencilo que resulta trabajar con este paradigma de programación. No voy a hablar aquí de las ventajas de la orientanción a objetos, entre otras cosas porque me llevaría varias horas, y si has llegado hasta aquí, es que algo del tema sabes, seguro. La mejor forma de ver un tema de estos (y todos creo yo en la informática) es experimentando, así que la teoría la vamos a ver con ejemplos, que es verdaderamente donde vemos la realidad de las cosas. Lo importante es experimentar, ¡sentir como el código fluye por nuestras retinas! . Es más, la informática, en mi humilde opinión, hay que verla y entenderla desde un punto de vista filosófico, al más puro estilo de David Hume (tan maltratado por la historia), en donde el conocimiento humano proviene de los sentidos, de las percepciones (ideas e impresiones). «Con el término impresión me refiero a nuestras más vívidas impresiones, c...

Crear una agenda en Python - Tercera parte (juntando todo)

Imagen
En este tercer post vamos a encajar todas las piezas para terminar de crear nuestra fantástica agenda personal, escrita en Python, que utiliza XML para manejo de datos, y por encima el framework de wxPython. ¡Qué mas se puede pedir! Evidentemente la aplicación, tal como va a quedarse, puede ser mejorada, y darle sobretodo mucha más funcionalidad, como permitir envío de correo (registro de direcciones, etc.), dividir los días en horas, implementación de alarmas, etc. Recapitulando, tenemos: 1) Un diseño gráfico completo, realizado en wxGlade . 2) Un diseño del modelo de datos que está bajo el diseño gráfico, cómo se gestiona la información, cómo se guarda, las herramientas de acceso, independiente del diseño que va por encima. El tercer paso consiste, mediante la programación de manejadores de eventos, el relacionar los posibles eventos que se dan en el diseño gráfico con la funcionalidad que queremos que tenga para nuestro modelo de datos. Para ello vamos a crear un tercer módulo, llam...