Jak volat funkci v Python (Příklad)
⚡ Chytré shrnutí
Funkce v Python jsou opakovaně použitelné bloky kódu, které se spustí při volání a jsou definovány příkazem def. Přijímají argumenty, vracejí hodnoty a spoléhají se na konzistentní odsazení pro seskupení příkazů patřících ke každé funkci.

V čem je Funkce Python?
A Funkce v Python je část kódu, která se spustí, když se na ni odkazuje. Používá se k využití kódu na více než jednom místě v programu. Nazývá se také metoda nebo procedura. Python nabízí mnoho vestavěných funkcí, jako například print(), input(), compile() a exec(), ale také vám dává svobodu vytvářet si vlastní funkce.
Jak definovat a volat funkci v Python
Funkce v Python je definována příkazem „def“, za nímž následuje název funkce a závorky ( () ).
Příklad:
Definujme funkci pomocí příkazu „def func1():“ a zavoláme ji. Výstupem funkce bude „Učím se Python funkce".
Volání funkce func1() vyvolá naši def func1(): a vypíše příkaz „Učím se Python funkce Žádná.“
Existuje soubor pravidel Python programování definovat funkci.
- Veškeré argumenty nebo vstupní parametry by měly být umístěny v těchto závorkách.
- První příkaz funkce může být volitelný příkaz – dokumentační řetězec nebo řetězec dokumentace funkce.
- Kód v každé funkci začíná dvojtečkou (:) a měl by být odsazen (mezera).
- Příkaz return (výraz) ukončuje funkci a volitelně vrací hodnotu volajícímu. Příkaz return bez argumentů je stejný jako return None.
Význam odsazení (mezera) v Python
Než se seznámíme s Python funkcí, je důležité, abychom rozuměli pravidlu odsazení, které se má deklarovat Python funkce a tato pravidla platí i pro další prvky Python stejně jako deklarování podmínek, cyklů nebo proměnných.
Python používá určitý styl odsazení k definování kódu. Protože Python Funkce nemají žádný explicitní začátek ani konec, jako složené závorky, které by označovaly začátek a konec funkce, musí se spoléhat na toto odsazení. Zde si ukážeme jednoduchý příklad s příkazem „print“. Když napíšeme funkci „print“ přímo pod řádek def func1():, zobrazí se chyba „chyba odsazení: očekáván odsazený blok“.
Nyní, když přidáte odsazení (mezeru) před funkci „print“, mělo by se to vytisknout podle očekávání.
Alespoň jedno odsazení stačí k úspěšnému fungování kódu. Doporučuje se však ponechat asi 3–4 mezery odsazení pro volání funkce.
Je také nutné, abyste při deklaraci odsazení zachovali stejné odsazení pro zbytek kódu. Například na níže uvedeném snímku obrazovky, když zavoláme jiný příkaz „stále ve funkci func1“ a ten není deklarován hned pod prvním příkazem print, zobrazí se chyba odsazení: „unindent neodpovídá žádné jiné úrovni odsazení“.
Když nyní pro oba příkazy použijeme stejné odsazení a zarovnáme je na stejný řádek, dostaneme očekávaný výstup.
Jak funkce vrátí hodnotu?
Příkaz return v Python určuje, jakou hodnotu vrátit volajícímu funkce. Pojďme si to vysvětlit na následujícím příkladu.
Krok 1) Funkce nic nevrací
Zde vidíme, kdy funkce „nevrací“ hodnotu. Například chceme načíst druhou mocninu čísla 4 a po spuštění kódu by měla vrátit hodnotu „16“. Tuto hodnotu vrátíme, když jednoduše použijeme kód „print x*x“, ale když zavoláme funkci „print square“, vrátí jako výstup „None“. Je to proto, že při volání funkce nedochází k rekurzi a funkce spadne na konec funkce. Python vrátí „None“ v případě, že se funkce nedostane na konec.
Krok 2) Nahraďte příkaz print příkazem pro přiřazení
Abychom to upřesnili, nahradíme příkaz print příkazem pro přiřazení. Podívejme se na výstup.
Když spustíte příkaz „print square (4)“, vrátí hodnotu objektu. Protože zde nemáme žádnou specifickou funkci, vrátí „None“.
Krok 3) Použijte funkci 'return' a spusťte kód
Nyní si ukážeme, jak načíst výstup pomocí příkazu „return“. Když použijete funkci „return“ a spustíte kód, zobrazí se výstup „16“.
Krok 4) Spusťte příkaz 'print square'
Funkce v Python jsou samy o sobě objektem a objekt má nějakou hodnotu. Zde uvidíme jak Python ošetřuje objekt. Když spustíte příkaz „print square“, vrátí hodnotu objektu. Protože jsme nepředali žádný argument, nemáme zde žádnou specifickou funkci, kterou bychom zde spustili, takže vrátí výchozí hodnotu (0x021B2D30), což je umístění objektu. V praxi Python program, pravděpodobně to nikdy nebudete muset dělat.
Argumenty ve funkcích
Argument je hodnota, která je předávána funkci při jejím volání.
Jinými slovy, na straně volající funkce je to argument a na straně funkce je to parametr.
Podívejme se jak Python argumenty fungují.
Krok 1) Argumenty jsou deklarovány v definici funkce. Při volání funkce můžete předat hodnoty těchto argumentů, jak je znázorněno níže.
Krok 2) Chcete-li deklarovat výchozí hodnotu pro argument, přiřaďte mu hodnotu v definici funkce.
Příklad: x nemá žádnou výchozí hodnotu. Výchozí hodnota y=0. Pokud při volání funkce násobení zadáme pouze jeden argument, Python přiřadí zadanou hodnotu x, zatímco keeping hodnota y=0. Proto je to násobek x*y=0.
Krok 3) Tentokrát změníme hodnotu na y=2 místo výchozí hodnoty y=0 a výstup se vrátí jako (4×2)=8.
Krok 4) Můžete také změnit pořadí, ve kterém jsou argumenty předávány v PythonZde jsme obrátili pořadí hodnot x a y na x=4 a y=2.
Krok 5) Více argumentů lze také předat jako pole. V tomto příkladu voláme více argumentů (1,2,3,4,5) voláním funkce (*args).
Příklad: Více argumentů jsme deklarovali jako čísla (1,2,3,4,5); když zavoláme funkci (*args), vypíše výstup jako (1,2,3,4,5).
Tip:
- In Python Ve verzi 2.7 není podporováno přetížení funkcí. Přetížení funkcí je možnost vytvořit více metod se stejným názvem s různou implementací. Přetížení funkcí je plně podporováno v Python 3.
- Mezi metodami a funkcemi panuje značný zmatek. Metody v Python jsou asociovány s instancemi objektů, zatímco funkce nikoli. Když Python volá metodu, sváže první parametr tohoto volání s odkazem na příslušný objekt. Jednoduše řečeno, samostatná funkce v Python je „funkce“, zatímco funkce, která je atributem třídy nebo instance, je „metodou“.
Zde je kompletní Python 3 kód
#define a function
def func1():
print ("I am learning Python function")
print ("still in func1")
func1()
def square(x):
return x*x
print(square(4))
def multiply(x,y=0):
print("value of x=",x)
print("value of y=",y)
return x*y
print(multiply(y=2,x=4))
Zde je kompletní Python 2 kód
#define a function
def func1():
print " I am learning Python function"
print " still in func1"
func1()
def square(x):
return x*x
print square(4)
def multiply(x,y=0):
print"value of x=",x
print"value of y=",y
return x*y
print multiply(y=2,x=4)














