0Pricing
Python Academy · Lección

Argumentos predeterminados y con nombre

Utilice valores de parámetros predeterminados y la sintaxis de llamada con argumentos con nombre.

Argumentos predeterminados y con nombre es una lección gratuita de Python Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Python Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Python Academy incluye 4 lecciones en total.

Introducción

Los valores de parámetros predeterminados y la sintaxis de llamadas con argumentos con nombre hacen que las funciones de Python sean flexibles y se documenten por sí mismas.

Valores de parámetros predeterminados

def greet(name, greeting='Hello'): proporciona un valor predeterminado para greeting. Quien llama puede omitirlo.
def greet(name, greeting='Hello'):
    print(f'{greeting}, {name}!')
greet('Alice')
greet('Bob', 'Hi')

Argumentos con nombre

Llame usando nombres: greet(name='Alice', greeting='Hi'). El orden no importa al usar argumentos con nombre.
def describe(name, age, city):
    print(f'{name}, {age}, {city}')
describe(age=30, city='NYC', name='Alice')

Mezcla de argumentos posicionales y con nombre

Los argumentos posicionales deben aparecer antes que los argumentos con nombre en la llamada. describe('Alice', city='NYC', age=30) es válido.
def f(a, b, c='default'):
    print(a, b, c)
f(1, c='X', b=2)

Trampa de los valores predeterminados mutables

NUNCA use valores predeterminados mutables: def f(lst=[]) comparte la misma lista entre todas las llamadas. Use def f(lst=None): lst = lst or [] en su lugar.
def append(x, lst=None):
    if lst is None:
        lst = []
    lst.append(x)
    return lst
print(append(1))
print(append(2))

Argumentos solo con nombre

Los parámetros posteriores a * deben pasarse por nombre: def f(a, *, b): solo b no puede ser posicional. Esto impone mayor claridad.
def f(a, *, b):
    return a + b
print(f(1, b=2))

Argumentos solo posicionales (3.8+)

Los parámetros anteriores a / deben ser posicionales: def f(a, b, /, c): a y b no pueden pasarse por nombre.
def f(a, b, /, c=0):
    return a + b + c
print(f(1, 2, c=3))

**kwargs

def f(**kwargs) recopila los argumentos con nombre adicionales en un dict. Es útil para reenviar opciones.
def show(**kwargs):
    for k, v in kwargs.items():
        print(f'{k}={v}')
show(name='Alice', age=30)

Combinación de *args y **kwargs

def f(*args, **kwargs) acepta cualquier combinación de argumentos posicionales y con nombre.
def debug(*args, **kwargs):
    print('args:', args)
    print('kwargs:', kwargs)
debug(1,2,x=3)

Desempaquetado en llamadas

f(*[1,2,3]) expande una lista como argumentos posicionales. f(**{'a':1}) expande un dict como argumentos con nombre.
def add(a, b, c): return a+b+c
d = {'a':1,'b':2,'c':3}
print(add(**d))

Aplicación parcial

from functools import partial; double = partial(pow, exp=2) fija algunos argumentos de antemano.
from functools import partial
def power(base, exp): return base ** exp
square = partial(power, exp=2)
print(square(5))

Comprobación rápida

¿Cuál es el peligro de usar un argumento predeterminado mutable como def f(lst=[])?

Resumen

Argumentos predeterminados: def f(x=val). Llamadas con nombre: f(x=val). Evite los valores predeterminados mutables. Use * para argumentos solo con nombre, / para argumentos solo posicionales y **kwargs para recopilar los adicionales.

Siga avanzando

¡Excelente trabajo! Pase a la siguiente lección para seguir progresando.

Preguntas frecuentes

¿La lección «Argumentos predeterminados y con nombre» es gratis?

Sí — el texto completo de «Argumentos predeterminados y con nombre» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Python Academy, actualiza a CoddyKit PRO. El curso de Python Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Argumentos predeterminados y con nombre»?

Utilice valores de parámetros predeterminados y la sintaxis de llamada con argumentos con nombre. Practicas Python Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Python Academy?

No se requiere experiencia previa. Python Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.

¿Cuánto tiempo toma la lección «Argumentos predeterminados y con nombre»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Python Academy?

Sí. Cada lección de Python Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Definición y llamada de funciones
  2. Argumentos predeterminados y con nombre
  3. args y kwargs
  4. Valores devueltos y ámbito
← Volver a Python Academy