Když v Pythonu definujeme funkce s výchozími hodnotami pro určité parametry, říká se, že má své argumenty nastavené jako možnost pro uživatele. Uživatelé mohou buď předat své hodnoty, nebo mohou předstírat, že funkce používá jejich výchozí hodnoty, které jsou specifikovány.
Tímto způsobem může uživatel volat funkci buď předáním těchto volitelných parametrů, nebo pouze předáním požadovaných parametrů.
Existují dva hlavní způsoby, jak předat volitelné parametry v pythonu
alternativa xampp
- Bez použití argumentů klíčových slov.
- Pomocí argumentů klíčových slov.
Předávání bez použití argumentů klíčových slov
Při předávání bez použití argumentů klíčových slov je třeba věnovat pozornost některým hlavním bodům:
- Pořadí parametrů by mělo být zachováno, tj. pořadí, ve kterém jsou parametry definovány ve funkci, by mělo být zachováno při volání funkce.
- Hodnoty pro nepovinné parametry by měly být předány, jinak dojde k chybě.
- Hodnotu výchozích argumentů lze předat nebo ignorovat.
Níže jsou uvedeny některé kódy, které tento koncept vysvětlují.
Pří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ýstup:
4 1099>
Příklad 2: můžeme také předat provázky.
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'>)> |
>
>
Výstup:
GeeksForGeeks GeeksForGeeks>
Předávání s argumenty klíčových slov
Když jsou funkce definovány, pak se parametry zapisují do datového typu formuláře název-klíčové slovo. Python tedy poskytuje mechanismus pro volání funkce pomocí názvu klíčového slova pro předávání hodnot. To pomáhá programátorovi tím, že se nemusí učit sekvenci nebo pořadí, ve kterém mají být parametry předány.
Některé důležité body, které si musíme zapamatovat, jsou následující:
- V tomto případě nejsme povinni dodržovat pořadí předávání hodnot.
- Mezi předávanými a deklarovanými názvy klíčových slov by neměl být žádný rozdíl.
Níže je uveden kód pro jeho implementaci.
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ýstup:

Java srovnatelné rozhraní
Jak vidíme, ve výše uvedeném příkladu nevyžadujeme udržování žádného řádu. Také můžeme vidět, že když se pokusíme předat pouze volitelné parametry, vyvolá to chybu. K tomu dochází, protože volitelné parametry lze vynechat, protože mají výchozí hodnotu, ale nemůžeme vynechat požadované parametry (ve výše uvedeném případě řetězec1.) Proto zobrazuje chybu s příznakem: chybí 1 požadovaný argument.
Tento příklad poskytne lepší představu o výše uvedeném tématu:
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ýstup:
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í volání pythonu tedy v zásadě kontroluje pouze to, zda je předán požadovaný počet funkčních parametrů nebo ne.
Níže je uveden případ, kdy se uživatel pokusí předat argumenty oběma způsoby diskutovanými výše spolu s daným opatřením:
Python3
konkretizace v Javě
def> comp(a, b>=>2>):> >if>(a print('first parameter is smaller') if(a>b): print('druhý parametr je menší') if(a == b): print('oba mají stejnou hodnotu.') print('první volání') comp(1) print( 'druhé volání') comp(2, 1) print('třetí volání') comp(b=1, a=-1) print('čtvrté volání') comp(-1, b=0 )> |
>
>
Výstup:
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 věc bychom si měli pamatovat, že argument klíčového slova by se měl použít po předání všech pozičních argumentů. Proto je to důležitá věc, kterou musíme mít na paměti při předávání parametrů oběma způsoby stejné funkci.