logo

Ako odovzdať voliteľné parametre funkcii v Pythone?

Keď v Pythone definujeme funkcie s predvolenými hodnotami pre určité parametre, hovorí sa, že má svoje argumenty nastavené ako možnosť pre používateľa. Používatelia môžu buď odovzdať svoje hodnoty, alebo môžu predstierať, že funkcia používa ich predvolené hodnoty, ktoré sú špecifikované.

Týmto spôsobom môže používateľ zavolať funkciu buď odovzdaním týchto voliteľných parametrov, alebo iba odovzdaním požadovaných parametrov.



Existujú dva hlavné spôsoby, ako odovzdať voliteľné parametre v pythone

znak na int java
  • Bez použitia argumentov kľúčových slov.
  • Pomocou argumentov kľúčových slov.

Odovzdanie bez použitia argumentov kľúčových slov

Pri prechádzaní bez použitia argumentov kľúčových slov je potrebné venovať pozornosť niektorým hlavným bodom:

  • Poradie parametrov by sa malo zachovať, t. j. pri volaní funkcie by sa malo zachovať poradie, v ktorom sú parametre definované vo funkcii.
  • Hodnoty pre nepovinné parametre by mali byť odovzdané, inak sa zobrazí chyba.
  • Hodnota predvolených argumentov môže byť odovzdaná alebo ignorovaná.

Nižšie sú uvedené niektoré kódy, ktoré vysvetľujú tento koncept.



Príklad 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>))>

>

>

Výkon:

4 1099>

Príklad 2: môžeme tiež odovzdať šnúrky.

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'>)>

>

10 ml v oz
>

Výkon:

GeeksForGeeks GeeksForGeeks>

Odovzdávanie s argumentmi kľúčových slov

Keď sú funkcie definované, parametre sa zapisujú do dátového typu formulára keyword-name. Takže python poskytuje mechanizmus na volanie funkcie pomocou názvu kľúčového slova na odovzdávanie hodnôt. To pomáha programátorom tým, že im to uľaví od toho, aby sa naučili poradie alebo poradie, v ktorom sa majú parametre odovzdávať.

Niektoré dôležité body, ktoré si musíme zapamätať, sú nasledovné:

  • V tomto prípade nie sme povinní dodržiavať poradie odovzdávania hodnôt.
  • Medzi odovzdanými a deklarovanými názvami kľúčových slov by nemal byť žiadny rozdiel.

Nižšie je uvedený kód na jeho implementáciu.

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'>)>

>

>

Výkon:

Ako vidíme, vo vyššie uvedenom príklade nevyžadujeme udržiavanie žiadneho poriadku. Tiež môžeme vidieť, že keď sa pokúsime odovzdať iba voliteľné parametre, vyvolá to chybu. Stáva sa to preto, že voliteľné parametre môžu byť vynechané, pretože majú predvolenú hodnotu, ale nemôžeme vynechať požadované parametre (reťazec1 vo vyššie uvedenom prípade.) Preto zobrazuje chybu s príznakom: chýba 1 požadovaný argument.

Tento príklad poskytne lepšiu predstavu o vyššie uvedenej téme:

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'>)>

>

>

Výkon:

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>

Funkčné volania pythonu teda v podstate kontrolujú iba to, či je odovzdaný požadovaný počet funkčných parametrov alebo nie.

Nižšie je znázornený prípad, keď sa používateľ pokúsi odovzdať argumenty oboma spôsobmi, o ktorých sa hovorí vyššie, spolu s daným opatrením:

Python3




def> comp(a, b>=>2>):> >if>(a print('first parameter is smaller') if(a>b): print('druhý parameter je menší') if(a == b): print('oba majú rovnakú hodnotu.') print('prvé volanie') comp(1) print( 'druhý hovor') comp(2, 1) print('tretí hovor') comp(b=1, a=-1) print('štvrtý hovor') comp(-1, b=0 )>

>

>

Výkon:

aká veľká je obrazovka môjho počítača
first call first parameter is smaller second call second parameter is smaller third call first parameter is smaller fourth call first parameter is smaller>

Takže jednu vec by sme si mali zapamätať, že argument kľúčového slova by sa mal použiť po odovzdaní všetkých pozičných argumentov. Preto je to dôležitá vec, ktorú musíme mať na pamäti pri odovzdávaní parametrov oboma spôsobmi do rovnakej funkcie.