„Python“, kai apibrėžiame funkcijas su numatytosiomis tam tikrų parametrų reikšmėmis, sakoma, kad jo argumentai yra nustatyti kaip vartotojo parinktis. Vartotojai gali perduoti savo reikšmes arba apsimesti, kad funkcija naudoja savo nurodytas numatytąsias reikšmes.
Tokiu būdu vartotojas gali iškviesti funkciją perduodamas tuos pasirenkamus parametrus arba tiesiog perduodamas reikiamus parametrus.
Yra du pagrindiniai būdai, kaip perduoti pasirenkamus parametrus python
kali linux terminalas
- Nenaudojant raktinių žodžių argumentų.
- Naudojant raktinių žodžių argumentus.
Išlaikyti nenaudojant raktinių žodžių argumentų
Keletas pagrindinių punktų, į kuriuos reikia atkreipti dėmesį pravažiuojant nenaudojant raktinių žodžių argumentų:
- Parametrų tvarka turėtų būti palaikoma, t. y. iškviečiant funkciją turėtų būti išlaikyta tvarka, kuria parametrai apibrėžiami funkcijoje.
- Neprivalomų parametrų reikšmės turėtų būti perduodamos, kitaip bus rodoma klaida.
- Numatytųjų argumentų reikšmė gali būti perduodama arba nepaisoma.
Žemiau yra keletas kodų, paaiškinančių šią sąvoką.
1 pavyzdys:
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>))> |
>
>
Išvestis:
4 1099>
2 pavyzdys: taip pat galime perduoti eilutes.
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'>)> |
>
>
Išvestis:
GeeksForGeeks GeeksForGeeks>
Perdavimas su raktinių žodžių argumentais
Kai apibrėžiamos funkcijos, parametrai rašomi forma datatype raktažodžio pavadinimas. Taigi python suteikia mechanizmą, kaip iškviesti funkciją naudojant raktinio žodžio pavadinimą, kad būtų perduodamos reikšmės. Tai padeda programuotojui neleisti jiems sužinoti sekos ar parametrų perdavimo tvarkos.
Kai kurie svarbūs dalykai, kuriuos turime atsiminti, yra šie:
- Šiuo atveju mes neprivalome išlaikyti verčių perdavimo tvarkos.
- Tarp pateiktų ir deklaruotų raktinių žodžių pavadinimų neturėtų būti skirtumo.
Žemiau yra jo įgyvendinimo kodas.
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'>)> |
>
cp komanda Linux
>
Išvestis:

Kaip matome, aukščiau pateiktame pavyzdyje nereikalaujame jokios tvarkos. Be to, matome, kad kai bandome perduoti tik pasirenkamus parametrus, tai sukelia klaidą. Taip atsitinka, nes pasirenkami parametrai gali būti praleisti, nes jie turi numatytuosius parametrus, tačiau negalime praleisti būtinų parametrų (anksčiau pateiktu atveju string1). Taigi rodoma klaida su vėliava: trūksta 1 būtino argumento.
Šis pavyzdys suteiks daugiau supratimo apie aukščiau pateiktą temą:
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'>)> |
>
>
Išvestis:
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>
Taigi iš esmės python funkciniai iškvietimai tikrina tik tuo atveju, jei yra išlaikytas reikiamas funkcinių parametrų skaičius, ar ne.
Toliau parodytas atvejis, kai vartotojas bando perduoti argumentus abiem anksčiau aptartais būdais, kartu su nurodyta atsargumo priemone:
Python3
pirminis skaičius java
def> comp(a, b>=>2>):> >if>(a print('first parameter is smaller') if(a>b): print('antrasis parametras yra mažesnis') if(a == b): print('abu yra vienodos vertės.') print('pirmas skambutis') comp(1) print( 'antras skambutis') comp(2, 1) print('third call') comp(b=1, a=-1) print('ketvirtas skambutis') 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>
Taigi vieną dalyką turėtume atsiminti, kad raktinio žodžio argumentas turėtų būti naudojamas po to, kai visi pozicijos argumentai yra perduoti. Taigi tai yra svarbus dalykas, kurį turime nepamiršti abiem būdais perduodant parametrus tai pačiai funkcijai.