Entradas

Funciones en Python: con y sin paréntesis

  Funciones en Python: con y sin paréntesis Te explico la diferencia fundamental entre usar funciones con y sin paréntesis en Python: 1. Función CON paréntesis:  Ejecución Cuando usas paréntesis después del nombre de una función,  estás ejecutando o llamando  esa función: python def saludar ( ) : return "¡Hola!" # Con paréntesis - EJECUTA la función mensaje = saludar ( ) print ( mensaje ) # Output: ¡Hola! 2. Función SIN paréntesis:  Referencia Cuando usas el nombre sin paréntesis,  estás haciendo referencia  a la función como objeto: python def saludar ( ) : return "¡Hola!" # Sin paréntesis - REFERENCIA a la función mi_funcion = saludar print ( mi_funcion ) # Output: <function saludar at 0x...> # Ahora puedes ejecutarla usando la referencia print ( mi_funcion ( ) ) # Output: ¡Hola! Ejemplos prácticos Ejemplo 1: Funciones como objetos de primera clase python def sumar ( a , b ) : return a + b def multipli...

¿Qué hace def contador_llamadas?

    PUNTOS CLAVE: funcion_original  =  saludar()  (funciones que definimos) funcion_envoltura()  ejecuta  funcion_original()  y retorna su resultado return funcion_envoltura  retorna la  función completa  con su closure El closure  mantiene vivo el  contador  entre llamadas   EL CLOSURE ES:  funcion_envoltura  +  contador python def contador_llamadas ( funcion_original ) : contador = 0 # ← Parte del closure def funcion_envoltura ( ) : # ← Parte del closure nonlocal contador contador += 1 print ( f"Llamada: { contador } " ) return funcion_original ( ) return funcion_envoltura # ← Retorna el CLOSURE completo 🔍  DESGLOSE: El CLOSURE está formado por: funcion_envoltura  - La función interna contador  - La variable que recuerda funcion_original  - La función original que se decoró 🎪  ANALOGÍA: python # El ...