Combinación de parámetros en Python
En una misma función se pueden pasar
simultáneamente parámetros nombrados y posicionales.
Esto se hace mediante el símbolo *,
que denota que los parámetros especificados
a su derecha deben considerarse nombrados,
a menos que no se quiera utilizar sus valores
por defecto.
Vamos a crear una función que muestre
todos los parámetros en la consola. La variable
data denotará un parámetro posicional
ordinario. Luego, después del símbolo
*, se definen dos variables start
y end con valores por defecto.
Sin embargo, al llamar a la función, haremos
que estas variables sean nombradas:
def func(data, *, start=0, end=100):
print(data, start, end)
func(1, start=2, end=3)
Resultado de la ejecución del código:
1 2 3
Si se elimina el valor por defecto de la variable
start y al mismo tiempo se omite
como parámetro nombrado, se mostrará un error.
Esto ocurre porque el símbolo *
ya ha definido start como una variable
nombrada:
def func(data, *, start, end=100):
print(data, start, end)
func(1, 2, end=3) # mostrará un error
¿Cuál será el resultado de la ejecución del siguiente código:
def func(num1, num2, *, num3):
return (num1 + num2) * num3
print(func(2, 4, num3=3))
¿Cuál será el resultado de la ejecución del siguiente código:
def func(num1, *, num2, num3):
return (num1 - num2) / num3
print(func(12, 4, num3=5))
¿Cuál será el resultado de la ejecución del siguiente código:
def func(*, name='user1', age='18'):
return 'Username is ' + name + ' age is ' + age
print(func(name='john'))