Repaso
English
PythonBasePY-55

¿Qué imprime esto?

def f(*args, **kwargs):
    print(args, kwargs)

f(1, 2, mode="fast")

Opciones

  1. [1, 2] {'mode': 'fast'}
  2. (1, 2) {'mode': 'fast'} (Opción correcta)
  3. (1, 2, 'fast') {}
  4. Un error

Respuesta

(1, 2) {'mode': 'fast'}

Por qué

*args reúne los argumentos posicionales extra (pasados sin nombre) en una tupla: (1, 2).

**kwargs reúne los argumentos con nombre extra (pasados como nombre=valor) en un dict: {'mode': 'fast'}.

Permiten que una función acepte cualquier número de argumentos. Los decorators los usan para pasarlo todo.

Recuerda

*args → tupla de argumentos posicionales. **kwargs → dict de argumentos con nombre.

Términos clave

Practica esta pregunta en Repaso