ESP32 / ESP8266 MicroPython: Lambda výrazy

Níže uvedený článek je článek přeložený ze stránek dfrobot.com.

Cílem tohoto návodu je ukázat, jak lze používat lambda výrazy a jaká je jejich výhoda oproti obvyklým funkcím. Lambda výrazy jsou běžnou praxí ve spoustě programovacích jazyků. Jejich výhodou je jejich definice přímo na místě, kde je chceme použít. Není tedy nutné definovat funkci někde mimo náš výkonný kód pomocí def.

Všechny články o MicroPython a ESP32/ESP8266 najdete na https://chiptron.cz/articles.php?cat_id=23

O lambdách:

Takto vypadá obecný zápis lambda výrazu, kde args reprezentuje vstupní proměnné a expression samotný výpočet výsledku. Je možné si také všimnout povinného slova lambda a dvojtečky.

lambda args: expression

V případě více vstupních proměnných je oddělíme čárkami. Nikdy je ale neuzavírejte do závorek. Další důležitou poznámkou je, že lambdy neobsahují klíčové slovo return, ale pouze výraz, pomocí kterého je možné dojít k výsledku.

Ukázka kódu:

Jako ukázku si vytvoříme výraz, který sečte dvě vstupní proměnné a vrátí výsledek. Nejprve si ukážeme, jak by se tato funkce udělala pomocí klasické funkce.
def sum(x,y):

return (x+y)

 

result = sum (4,5)

print(result)

Obrázek 1 – Použití klasické funkce

Stejnou funkci je možné dosáhnout následujícím lambda výrazem (všimněte si oddělení vstupních parametrů čárkou):
sumLambda = lambda x,y: x+y

Nyní tento výraz zavoláme a podíváme se na výsledek.
result = sumLambda(4,5)

print(result)

V této ukázce jsme si uložili náš lambda výraz do proměnné sumLambda. Oproti klasické funkci má tento přístup nevýhodu ve snadném přepsání této proměnné jinou částí kódu a ztrátě naší funkce. Obvykle se lambdy nepřiřazují do proměnné, ale používají se přímo jako parametry některé z funkcí (např. filter, map, reduce…).

Obrázek 2 – Použití lambda výrazu

Hlavní výhodou lambda výrazů je jejich přehlednost v kódu. Jsou obvykle definovány až v okamžiku, kdy jsou potřeba.

Sdílejte článek:
Ukaž světu,
že jsi Maker!
Koupit tričko
Kafe pro Chiptrona
Dodej energii dalšímu článku

Související články

Cílem tohoto návodu je ukázat, jak lze používat filtry na seznamy.

Toto je první díl ze tří – úvodního kurzu Micropython na ESP32.

– ROBOTboard (HW) – Octopus open source knihovny (FW) – Nastavení zařízení a periferií – ds: device setting > pinouts – ios: input-output setup – Upgrade systému – Displeje – Tlačítka – Mechatronika – Čidla a vstupy – Shrnutí V…

– Změny v Micropythonu si vynucují změnu octopus() – Opakování a podrobnější doplnění – LED – nejjednodušší knihovna pro testování – web_server() – Webový editor IDE (integrated development environment) – Některé další vychytávky – Drobné projekty – examples V minulých…

Níže uvedený článek je článek přeložený ze stránek dfrobot.

Trendy