Usar Valores de Parámetros Predeterminados
A menudo es útil proporcionar un valor predeterminado para un parámetro. Si no se proporciona un argumento para ese parámetro durante la llamada a la función, se utiliza el valor predeterminado. Esto hace que el parámetro sea opcional.
Veamos qué sucede cuando llamamos a una función sin un argumento requerido. Abra el archivo default_params.py y agregue el siguiente código:
def hello(name):
print(f'Hello, {name}!')
hello()
Guarde el archivo y ejecútelo desde la terminal:
python3 ~/project/default_params.py
Esto producirá un TypeError porque la función hello esperaba un argumento pero no recibió ninguno.
Traceback (most recent call last):
File "/home/labex/project/default_params.py", line 4, in <module>
hello()
TypeError: hello() missing 1 required positional argument: 'name'
Para solucionar esto, podemos asignar un valor predeterminado al parámetro name. Modifique el archivo default_params.py reemplazando su contenido con el siguiente código:
def hello(name="World"):
print(f'Hello, {name}!')
hello()
hello("Jobs")
Ahora, ejecute el script nuevamente:
python3 ~/project/default_params.py
La salida será:
Hello, World!
Hello, Jobs!
La primera llamada utiliza el valor predeterminado "World", mientras que la segunda llamada utiliza el argumento proporcionado "Jobs".
Regla Importante: En la definición de una función, todos los parámetros sin valores predeterminados deben aparecer antes que cualquier parámetro con valores predeterminados. Por ejemplo, def func(a, b="default") es correcto, pero def func(a="default", b) causará un SyntaxError.