I Python, når vi definerer funktioner med standardværdier for visse parametre, siges det at have sine argumenter indstillet som en mulighed for brugeren. Brugere kan enten videregive deres værdier eller kan foregive, at funktionen bruger deres standardværdier, som er angivet.
På denne måde kan brugeren kalde funktionen ved enten at videregive de valgfrie parametre eller blot at videregive de nødvendige parametre.
Der er to hovedmåder at videregive valgfrie parametre i python
android proces acore
- Uden at bruge søgeordsargumenter.
- Ved at bruge søgeordsargumenter.
Bestå uden at bruge søgeordsargumenter
Nogle hovedpunkter, der skal passes på, når du begiver dig uden at bruge søgeordsargumenter, er:
- Rækkefølgen af parametre skal vedligeholdes, dvs. den rækkefølge, hvori parametre er defineret i funktion, skal opretholdes, mens funktionen kaldes.
- Værdierne for de ikke-valgfrie parametre bør passeres, ellers vil det give en fejl.
- Værdien af standardargumenterne kan enten sendes eller ignoreres.
Nedenfor er nogle koder, der forklarer dette koncept.
Eksempel 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>))> |
>
>
Produktion:
4 1099>
Eksempel 2: vi kan også sende strenge.
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'>)> |
>
>
Produktion:
GeeksForGeeks GeeksForGeeks>
Bestå med søgeordsargumenter
Når funktioner er defineret, skrives parametrene i formen datatype nøgleord-navn. Så python giver en mekanisme til at kalde funktionen ved hjælp af nøgleordsnavnet til at overføre værdierne. Dette hjælper programmøren ved ikke at lære sekvensen eller rækkefølgen, hvori parametrene skal sendes.
Nogle vigtige punkter, vi skal huske, er som følger:
- I dette tilfælde er vi ikke forpligtet til at opretholde rækkefølgen for videregivelse af værdierne.
- Der bør ikke være nogen forskel mellem de godkendte og erklærede søgeordsnavne.
Nedenfor er koden til dens implementering.
Python3
mappe i linux-kommandoer
# 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'>)> |
>
>
Produktion:

Som vi kan se, at vi ikke kræver, at der opretholdes nogen orden i ovenstående eksempel. Vi kan også se, at når vi prøver kun at videregive de valgfrie parametre, så rejser det en fejl. Dette sker, da valgfrie parametre kan udelades, da de har en standard med sig, men vi kan ikke udelade nødvendige parametre (streng1 i ovenstående tilfælde). Derfor viser den en fejl med flaget: mangler 1 påkrævet argument.
Dette eksempel vil give en mere indsigt i ovenstående emne:
Python3
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'>)> |
>
java liste over
>
Produktion:
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>
Så grundlæggende kontrollerer python funktionelle opkald kun, om det nødvendige antal funktionelle parametre er bestået eller ej.
Nedenfor viser det tilfælde, hvor en bruger forsøger at sende argumenter på begge måder diskuteret ovenfor sammen med den angivne forholdsregel:
Python3
def> comp(a, b>=>2>):> >if>(a print('first parameter is smaller') if(a>b): print('anden parameter er mindre') if(a == b): print('begge har samme værdi.') print('første opkald') comp(1) print( 'andet opkald') comp(2, 1) print('tredje opkald') comp(b=1, a=-1) print('fjerde opkald') comp(-1, b=0 )> |
>
>
Produktion:
first call first parameter is smaller second call second parameter is smaller third call first parameter is smaller fourth call first parameter is smaller>
Så én ting skal vi huske, at søgeordsargumentet skal bruges, efter at alle positionelle argumenter er bestået. Derfor er dette en vigtig ting, vi skal huske på, mens vi overfører parametre på begge måder til samme funktion.