¿Qué hace ‘if __name__ == «__main__»:’ en Python?

Seguramente has visto, e incluso utilizado, esta línea de código más de una vez: … if __name__ == ‘__main__’: … Pero, ¿sabes lo que hace y por qué está ahí? Te lo explico. Cada vez que el intérprete de Python lee código fuente de un archivo, ejecuta todo el código dentro de ese archivo. Incluso, …

¿Qué hace ‘yield’ en Python?

yield es una orden muy similar a un return, con una gran diferencia, yield pausará la ejecución de tu función y guardará el estado de la misma hasta que decidas usarla de nuevo. ¿Confuso? Vamos a verlo en un ejemplo. Queremos calcular los cuadrados de una lista de números que se pasan como parámetro. Una …

Django, vistas basadas en clases (III): List View

Tras las Detail View, las vistas más simples de utilizar son las List View. Este tipo de vista nos ayudará a gestionar listas de objetos traídos de la base de datos. Al igual que las anteriores, podemos usarlas con sólo 2 líneas de código. Además, nos va a ayudar crear paginación, seleccionar tamaño de las …

Django, vistas basadas en clases (II): Detail View

Hoy vamos a hablar de la vista basada en clases más fácil y simple de usar, Detail View. Esta vista nos permite acceder a un objeto en base de datos y mostrarlo con nuestra plantilla html en, literalmente, 2 líneas. Además tendrá comportamientos básicos asociados. Por ejemplo, si no encuentra el objeto, devolverá un error …

Django, vistas basadas en clases (I): Introducción

Hace un año publiqué un un tutorial de Django para crear un blog. Django ha avanzado mucho recientemente. Uno de los cambios más importantes que se han producido es en las vistas. Las vistas (views) ahora son clases en lugar de ser funciones. Si queremos podemos seguir usando funciones pero las clases pueden ser muy …

Programación con hilos (threading) en Python

Hace unos días, necesité utilizar threading en Python en el trabajo. Como sabéis, soy programador web. Necesitaba ejecutar un programa que suele tardar entre 1 y 4 minutos y tenía que ejecutarse como resultado de una petición web. Evidentemente, no puedo tardar en responder una petición todo ese tiempo, así que lo hice creando un …

Leer carpetas y archivos con Python

Leer carpetas y saber los archivos que están en ellas es muy sencillo en Python. Vamos a utilizar las funciones listdir, isfile, join y walk. Si queremos ver todo el contenido de un fichero vamos a utilizar la función listdir a la que pasaremos el path del fichero en cuestión: from os import listdir for …

Comprehension list en Python

¿Conocéis las Comprehension list de Python? Se trata de una forma rápida, limpia y sencilla de crear listas de valores. La idea es sustituir código como este: cuadrados = [] for x in range(10): cuadrados.append(x**2) Por código como este: cuadrados = [x**2 for x in range(10)] En ambos casos el resultado es el mismo. Una …

Generadores en Python

Hoy quiero mostraros cómo usar generadores en Python. ¿Qué son los generadores? Son funciones que nos permitirán obtener sus resultados poco a poco. Es decir, cada vez que llamemos a la función nos darán un nuevo resultado. Por ejemplo, una función para generar todos los números pares que cada vez que la llamemos nos devuelva …

Diferencia entre ‘is’ y ‘==’ en Python

Cuando se empieza en Python es bastante frecuente usar como sinónimos los comparadores is y ==. Aunque, en general, suelen funcionar de forma similar sus comportamientos no son exactamente iguales. is devolverá True si las dos variables apuntan al mismo objeto. == devolverá True si los valores de las variables son iguales. Para acabar de …