A Python, quan definim funcions amb valors per defecte per a determinats paràmetres, es diu que té els seus arguments establerts com a opció per a l'usuari. Els usuaris poden passar els seus valors o poden fingir que la funció utilitzi els seus valors predeterminats que s'especifiquen.
D'aquesta manera, l'usuari pot cridar la funció passant aquests paràmetres opcionals o simplement passant els paràmetres requerits.
Hi ha dues maneres principals de passar paràmetres opcionals a Python
clau del període
- Sense utilitzar arguments de paraula clau.
- Mitjançant l'ús d'arguments de paraula clau.
Passant sense utilitzar arguments de paraula clau
Alguns dels punts principals que cal tenir en compte quan es passa sense utilitzar arguments de paraula clau és:
- S'ha de mantenir l'ordre dels paràmetres, és a dir, l'ordre en què es defineixen els paràmetres a la funció s'ha de mantenir mentre es crida la funció.
- Els valors dels paràmetres no opcionals s'han de passar, en cas contrari es produirà un error.
- El valor dels arguments per defecte es pot passar o ignorar.
A continuació es mostren alguns codis que expliquen aquest concepte.
Exemple 1:
Python 3
# 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>))> |
>
>
Sortida:
4 1099>
Exemple 2: també podem passar cordes.
Python 3
# 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'>)> |
>
>
Sortida:
GeeksForGeeks GeeksForGeeks>
Passant amb arguments de paraula clau
Quan es defineixen les funcions, els paràmetres s'escriuen en la forma de tipus de dades nom-paraula. Així, Python proporciona un mecanisme per cridar la funció utilitzant el nom de la paraula clau per passar els valors. Això ajuda el programador a alleujar-lo perquè no aprengui la seqüència o l'ordre en què s'han de passar els paràmetres.
Alguns punts importants que hem de recordar són els següents:
- En aquest cas, no estem obligats a mantenir l'ordre de transmissió dels valors.
- No hi hauria d'haver cap diferència entre els noms de paraules clau passats i declarats.
A continuació es mostra el codi per a la seva implementació.
Python 3
# 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'>)> |
>
cadenes d'ordenació java
>
Sortida:

Com podem veure que no necessitem que es mantingui cap ordre a l'exemple anterior. A més, podem veure que quan intentem passar només els paràmetres opcionals, genera un error. Això passa perquè els paràmetres opcionals es poden ometre ja que tenen un valor predeterminat, però no podem ometre els paràmetres obligatoris (cadena 1 en el cas anterior). Per tant, mostra un error amb el senyalador: falta 1 argument necessari.
Aquest exemple donarà una idea més detallada del tema anterior:
Python 3
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'>)> |
>
>
Sortida:
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>
Així, bàsicament, les trucades funcionals de Python només comprova si es passa el nombre requerit de paràmetres funcionals o no.
A continuació es mostra el cas en què un usuari intenta passar arguments de les dues maneres comentades anteriorment juntament amb la precaució donada:
Python 3
Com obtenir emojis d'Apple a Android
def> comp(a, b>=>2>):> >if>(a print('first parameter is smaller') if(a>b): print('el segon paràmetre és més petit') if(a == b): print('tots dos tenen el mateix valor.') print('primera trucada') comp(1) print( 'segona trucada') comp(2, 1) print('tercera trucada') comp(b=1, a=-1) print('quarta trucada') comp(-1, b=0 )>>> |
>first call first parameter is smaller second call second parameter is smaller third call first parameter is smaller fourth call first parameter is smaller>
Així que una cosa hem de recordar que l'argument de la paraula clau s'ha d'utilitzar després de passar tots els arguments posicionals. Per tant, això és una cosa important que hem de tenir en compte quan passem paràmetres d'ambdues maneres a la mateixa funció.