POLITICA DE COOKIES

Q2BSTUDIO.COM utiliza cookies técnicas, analíticas, de sesión y de publicidad con la finalidad de prestar un mejor servicio. No obstante, necesitamos su consentimiento explícito para poder utilizarlas. Así mismo puede cambiar la configuración de las cookies u obtener más información aquí .

Quiz de Python: Cierres y Bucles

## Quiz de Python: Cierres y Bucles

Publicado el 31/08/2025

Python Quiz — Closures y variables de bucle

Pregunta clave cual es la salida de este código y por qué

def make_counters(): counters = [] for i in range(3): def counter(): return i counters.append(counter) return counters a, b, c = make_counters() print(a(), b(), c())

Respuesta correcta 2 2 2

Por qué sucede Esto ocurre por el enlace tardío de Python en cierres o closures. La función interna counter no captura el valor de i, captura la referencia al nombre i del alcance exterior. El valor de i se resuelve cuando se llama a cada función, no cuando se define. Al terminar el bucle for, i vale 2, por lo que a(), b() y c() devuelven 2.

Cómo obtener 0 1 2 si lo necesitas Usa enlace temprano pasando el valor como argumento por defecto en el momento de la definición o usando una función auxiliar. Por ejemplo def counter(i=i): return i dentro del bucle, o bien una fábrica def make_counter(j): def counter(): return j return counter, y añadir make_counter(i) a la lista. En ambos casos cada closure fija su propio valor.

Por qué este ejercicio importa Comprender cierres, enlace tardío y variables de bucle evita errores sutiles al crear fábricas de funciones, decoradores, callbacks y generadores de comandos. Con esta base, patrones avanzados de diseño funcional se convierten en herramientas fiables en proyectos de software a medida y aplicaciones a medida.

Guía rápida para razonar el código 1 identifica dónde se define cada función y qué nombres externos utiliza 2 pregúntate cuándo se evalúa i si es al definir o al llamar 3 simula mentalmente el bucle y las llamadas posteriores 4 si dudas, imprime i dentro del bucle y al llamar para observar el momento de la resolución de nombres

Q2BSTUDIO es tu aliado tecnológico para llevar estas buenas prácticas de ingeniería a producción. Somos una empresa de desarrollo de software y aplicaciones a medida, especialistas en inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio y power bi, automatización de procesos, ia para empresas y agentes IA. Si buscas un equipo que convierta conceptos como closures, diseño de APIs, pruebas automatizadas y despliegues en valor real para tu negocio, descubre nuestro desarrollo de aplicaciones y software a medida y cómo aplicamos patrones fiables desde el código hasta la nube.

Además, si tu objetivo es acelerar la entrega con pipelines robustos y tareas repetitivas sin errores humanos, podemos ayudarte con automatización de procesos, integrando tus sistemas con buenas prácticas de ingeniería, observabilidad y seguridad. Potenciamos tus soluciones con analítica avanzada, power bi y estrategias de ciberseguridad alineadas a normativas, sobre infraestructuras cloud escalables en aws y azure.

Conclusión Recuerda que en Python las closures capturan nombres y se evalúan al llamar. Si necesitas capturar el valor en cada iteración, fija el valor con argumentos por defecto o funciones auxiliares. Dominar estos detalles técnicos es clave para construir software a medida robusto, ampliar capacidades con inteligencia artificial e industrializar tus soluciones con seguridad y escalabilidad.

Fin del artículo, inicio de la diversión
Construyendo software juntos

Dando vida a tus ideas desde 2008

Diseñamos aplicaciones móviles y de escritorio innovadoras que cumplen con tus requisitos específicos y mejoran la eficiencia operativa.
Más info
Cuéntanos tu visión
Sea cual sea el alcance, podemos convertir tu idea en realidad. Envíanosla y charlemos sobre tu proyecto o una colaboración futura.
Contáctanos
artículos destacados
Live Chat
Enviado correctamente.

Gracias por confiar en Q2BStudio