Shoutbox

Pro přidání zprávy se musíte přihlásit.

27-06-2019 12:54
ESP32 v IDF se dá programovat v PlatformIO Úsměv

28-04-2019 22:48
Hm, nenašel jsem...

26-04-2019 18:00
Nevíte někdo v čem programovat ESP32 - IDF pod Win bez příkazové řádky?

16-04-2019 11:17
Ahoj vespolek, bavím se čtením signálu pro modelářské servo pomocí Microchip PIC s použitím CCP (capture every edge). ... a-ha, text je omezen na malou délku ...

09-04-2019 01:36
Prosim zahlasujte za moje projekty v Hackaday prize 2019 https://hackaday..
..cker/13133
Diky moc Mrknutí

23-02-2019 16:38
Už jsem ho našel Úsměv Ten zelený zákal je sviňa.

Sdílejte nás



RSS feeds

ESP32 / ESP8266 MicroPython: Lambda výrazyTisk

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.

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.
Zatím nikdo nekomentoval. Buďte první kdo vloží svůj komentář.

Přidat komentář

Pro přidání komentáře musíte být přihlášený.

Upozornění

Administrátor těchto stránek ani autor článků neručí za správnost a funkčnost zde uvedených materiálů.
Administrátor těchto stránek se zříká jakékoli odpovědnosti za případné ublížení na zdraví či poškození nebo zničení majetku v důsledku elektrického proudu, chybnosti schémat nebo i teoretické výuky. Je zakázané používat zařízení, která jsou v rozporu s právními předpisy ČR či EU.
Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva.
Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ.