Saltearse al contenido

Funciones con valores por defecto

Las funciones con valores por defecto, o argumentos predeterminados, son un mecanismo que permite a una función recibir parámetros con valores predeterminados si no se proporciona un argumento al llamarla. Esto facilita la escritura de funciones más flexibles y versátiles.

En la definición de la función, se asigna un valor a cada parámetro que puede tener un valor predeterminado.

Al llamar a la función, se pueden omitir los argumentos correspondientes a los parámetros con valores predeterminados, y la función utilizará estos valores en su lugar.

En esta sección exploraremos cómo construir funciones en Python de manera flexible y reutilizable. Veremos distintas formas de definir y usar parámetros para adaptarnos a diferentes necesidades, como los valores por defecto o los argumentos opcionales.

Podemos hacer que un parámetro sea opcional, lo cual ayuda a flexibilizar el uso de la función para distintos escenarios.

saludar.py
def saludo(nombre, apellido=None):
> if apellido:
        print(f'Hola, {nombre} {apellido}')
    else:
        print(f'Hola, {nombre}')
nombre = 'Py'
apellido = 'Docs'
saludo(nombre)
saludo(nombre, apellido)

Salida:

saludar.py
Hola, Py
Hola, PyDocs

Si el usuario no proporciona el segundo argumento (exponente), la función asume por defecto que se desea elevar al cuadrado (exponente = 2). Esto permite usar la función de forma más flexible, sin necesidad de siempre escribir ambos argumentos.

potencia.py
def potencia(base, exponente=2):
print(f'{base} elevado a {exponente} es {base ** exponente}')
potencia(5) # Usa el valor por defecto 2
potencia(5, 3) # Usa el valor proporcionado

Salida:

potencia.py
5 elevado a 2 es 25 5 elevado a 3 es 125
  • Flexibilidad: Permite llamar a la función de diferentes maneras, según la necesidad.

  • Simplificación: Evita la necesidad de pasar argumentos innecesarios en todos los casos.

  • Mayor legibilidad: Facilita la comprensión del código al mostrar explícitamente los valores predeterminados.