logo

¿Cómo pasar parámetros opcionales a una función en Python?

En Python, cuando definimos funciones con valores predeterminados para ciertos parámetros, se dice que sus argumentos están configurados como una opción para el usuario. Los usuarios pueden pasar sus valores o pueden pretender que la función utilice los valores predeterminados que se especifican.

De esta manera, el usuario puede llamar a la función pasando esos parámetros opcionales o simplemente pasando los parámetros requeridos.



Hay dos formas principales de pasar parámetros opcionales en Python

convertir booleano a cadena
  • Sin utilizar argumentos de palabras clave.
  • Mediante el uso de argumentos de palabras clave.

Pasar sin utilizar argumentos de palabras clave

Algunos puntos principales a tener en cuenta al pasar sin utilizar argumentos de palabras clave son:

  • Se debe mantener el orden de los parámetros, es decir, se debe mantener el orden en el que se definen los parámetros en la función al llamar a la función.
  • Se deben pasar los valores de los parámetros no opcionales, de lo contrario se generará un error.
  • El valor de los argumentos predeterminados se puede pasar o ignorar.

A continuación se muestran algunos códigos que explican este concepto.



Ejemplo 1:

Python3






# Here b is predefined and hence is optional.> def> func(a, b>=>1098>):> >return> a>+>b> print>(func(>2>,>2>))> # this 1 is represented as 'a' in the function and> # function uses the default value of b> print>(func(>1>))>

>

>

Producción:

4 1099>

Ejemplo 2: También podemos pasar cadenas.

Python3




# Here string2 is the default string used> def> fun2(string1, string2>=>'Geeks'>):> >print>(string1>+> string2)> # calling the function using default value> fun2(>'GeeksFor'>)> # calling without default value.> fun2(>'GeeksFor'>,>'Geeks'>)>

>

>

iterador java para mapa

Producción:

GeeksForGeeks GeeksForGeeks>

Pasar con argumentos de palabras clave

Cuando se definen funciones, los parámetros se escriben en el formato tipo de datos nombre-palabra clave. Entonces Python proporciona un mecanismo para llamar a la función usando el nombre de la palabra clave para pasar los valores. Esto ayuda al programador al evitar que aprenda la secuencia o el orden en el que se deben pasar los parámetros.

Algunos puntos importantes que debemos recordar son los siguientes:

  • En este caso, no estamos obligados a mantener el orden de paso de los valores.
  • No debería haber diferencia entre los nombres de palabras clave pasados ​​y declarados.

A continuación se muestra el código para su implementación.

Python3




# Here string2 is the default string used> def> fun2(string1, string2>=>'Geeks'>):> >print>(string1>+> string2)> # Thiscan be a way where no order is needed.> fun2(string2>=>'GeeksFor'>, string1>=>'Geeks'>)> # since we are not mentioning the non-default argument> # so it will give error.> fun2(string2>=>'GeeksFor'>)>

>

>

Producción:

Como podemos ver, no requerimos que se mantenga ningún orden en el ejemplo anterior. Además, podemos ver que cuando intentamos pasar solo los parámetros opcionales, genera un error. Esto sucede porque los parámetros opcionales se pueden omitir ya que tienen un valor predeterminado, pero no podemos omitir los parámetros requeridos (cadena1 en el caso anterior). Por lo tanto, muestra un error con la bandera: falta 1 argumento requerido.

Este ejemplo dará una idea más clara del tema anterior:

Python3


historial de versiones de Android



def> func(a, b, c>=>'geeks'>):> >print>(a,>'type is'>,>type>(a))> >print>(b,>'type is'>,>type>(b))> >print>(c,>'type is'>,>type>(c))> # The optional parameters will not decide> # the type of parameter passed.> # also the order is maintained> print>(>'first call'>)> func(>2>,>'z'>,>2.0>)> # below call uses the default> # mentioned value of c> print>(>'second call'>)> func(>2>,>1>)> # The below call (in comments) will give an error> # since other required parameter is not passed.> # func('a')> print>(>'third call'>)> func(c>=>2>, b>=>3>, a>=>'geeks'>)>

>

>

Producción:

first call 2 type is z type is 2.0 type is second call 2 type is 1 type is geeks type is third call geeks type is 3 type is 2 type is>

Entonces, básicamente, las llamadas funcionales de Python verifican solo si se pasa o no la cantidad requerida de parámetros funcionales.

A continuación se muestra el caso en el que un usuario intenta pasar argumentos de las dos formas mencionadas anteriormente junto con la precaución dada:

Python3




def> comp(a, b>=>2>):> >if>(a print('first parameter is smaller') if(a>b): print('el segundo parámetro es menor') if(a == b): print('ambos tienen el mismo valor.') print('primera llamada') comp(1) print( 'segunda llamada') comp(2, 1) print('tercera llamada') comp(b=1, a=-1) print('cuarta llamada') comp(-1, b=0 )>

>

>

Producción:

first call first parameter is smaller second call second parameter is smaller third call first parameter is smaller fourth call first parameter is smaller>

Entonces, una cosa que debemos recordar es que el argumento de palabra clave debe usarse después de que se pasen todos los argumentos posicionales. Por lo tanto, esto es algo importante que debemos tener en cuenta al pasar parámetros en ambos sentidos a la misma función.