Decoración de funciones en Python usando functools

La decoración de funciones, usando functools, en Python nos permite eliminar código repetitivo que debemos escribir una y otra vez, y también nos permite modificar funciones existentes con unas pocas lineas de código. Como ejemplo, veamos la tubería que escribí hace tiempo atrás: #!/usr/bin/env python3 import sys, re def grep(expression): while True: text = (yield) […]

‘Contexts’ en Python

En Python, un contexto (context) es una clase que implementa los métodos ‘__enter__’ y ‘__exit__’ los cuales son llamados si la clase en llamada con la palabra reservada ‘with’. Por ejemplo, los descriptores de archivo (file handle) en Python se pueden llamar con un contexto, ahorrando llamar ‘finally’ para cerrar archivos, sin importar si hay […]

Functors en Python

Un ‘functor’ es u objeto el cual puede ser llamado como si fuera una función. En Python simplemente hay que implementar el método ‘__call__’. En este ejemplo, vamos a tomar a los candidatos presidenciales del articulo anterior y vamos a escribir una pequeña clase (llamada SortKey) la cual nos va a permitir ordenar por cualquier […]

Slots, Abstracts classes en Python 3

¿Se acuerdan del ejemplo anterior usando classes en Python? En este caso hice un par de cambios para aprender más sobre clases abstractas y slots (una manera de ahorrar memoria en Python cuando creamos objetos). En este caso: Uso un ‘slot’ para guardar sólo 3 atributos que son definidos en el constructor Declaro la propiedad […]

Recetas en Python, Java, Perl y otros lenguajes

Internet ofrece un montón de lugares en los cuales puedes buscar pedazos de código, para aprender como hacer algo rápidamente en su lenguaje de programación favorito. Por ejemplo, como las tiendas de ‘todo a un dolar’, tienes sitios con pedazos de código como http://code.activestate.com/recipes/langs/; en otros casos si quieres una discusión un poco más profunda […]