Krajta

Výukový program pro závěry v Pythonu

Výukový program pro závěry v Pythonu
Uzávěr je vnořená vnitřní metoda nebo funkce, která rozpoznává a má oprávnění používat proměnné i po dokončení vnější funkce v místním rozsahu, ve kterém byla vytvořena. Proměnná musí být z vnější funkce nebo oboru a není jistě ohraničena v místním prostoru, který má být použit. Uzávěr Pythonu má tři funkce, jsou to následující:

Vnořená funkce

Nejprve musíte pochopit, co je vnořená metoda. Vnořenou funkci lze definovat jako metodu určenou v rámci jiné metody. Rekurzivní funkce mohou dosáhnout proměnných vnějšího rozsahu. Chcete-li změnit nelokální proměnné, specificky je definujeme jako nelokální prostřednictvím nelokálních klíčových slov, protože jsou od přírody jen pro čtení. Nejprve se tedy podívejte na vnořenou funkci prováděnou v programu Spyder Python 3.

Definovali jsme dvě funkce: vnější a vnitřní. Ve vnější funkci jsme deklarovali proměnnou s nějakou textovou hodnotou.

def outer_func ()
msg = 'Hy! Jsem Aqsa Yasin '

Tato proměnná byla vytištěna ve vnitřní funkci pomocí příkazu print. Poté je vrácena vnitřní funkce, což je vnořená funkce, a poté byla volána vnější funkce.

def inner_func ()
tisk (zpráva)
návrat inner_func ()
inner_func ()

Pokud nepoužíváte klíčové slovo return pro vrácení vnitřní funkce, vrátí stále stejný výsledek.

Když spustíte tento jednoduchý kód, vrátí vám text definovaný jako hodnota v proměnné 'msg'.

Výstup: Hy! Jsem Aqsa Yasin

Nyní definujte stejný typ vnořené funkce bez návratového klíčového slova a předávání proměnné 'msg' v parametru a získáte stejný výstup.

Výstup: Dobrý den

Funkce jednoduchého uzavření

Použijte stejný kód, s malou změnou na posledních dvou řádcích. S provázkem 'Ahoj', the show_msg () byla vyvolána metoda a vrácená metoda byla svázána se slovem 'další'. Při volání další(), text 'Ahoj' byl stále odvolán, zatímco show_msg () metoda již byla spuštěna. Nezapomeňte přidat proměnnou 'msg' v rámci vnější funkce.

Když spustíte tento kód, ukáže se, že vnitřní funkce, která je a ukázat(), byl přiřazen k proměnné 'další'.

Výstup: .ukázat na 0x0000020CCED4D820>

Můžete jednoduše vytisknout název funkce přiřazené proměnné 'další' tak jako:

tisk (další.__název__)

Na výstupu bude název funkce.

Výstup: ukázat

Nyní, pokud chcete tuto proměnnou spustit jako funkci, stejně jako jiné metody, můžete to udělat přidáním závorek a voláním takto:

another = show_msg ("Hello")
další()
další()

Můžete to volat tolikrát, kolikrát chcete.

Když spustíte tento kód, zobrazí se něco takového:

Výstup:

Ahoj

Ahoj

Ahoj

Nyní vidíte, že i po dokončení provádění vnější funkce si vnitřní funkce stále pamatuje proměnné a další věci, které byly vytvořeny nebo definovány v místním prostoru.

Funkce uzavření pomocí parametrů

Nyní jsme přidali parametry při předávání proměnné ve vnější funkci jako:

def show_msg (msg)

Hodnota předaná do parametru vnější funkce bude přiřazena proměnné definované v této vnější funkci jako:

Zpráva = zpráva

Předejte některé hodnoty řetězce v nově vytvořených proměnných na posledním řádku, jako:

func1 = show_msg ('Ahoj')
func2 = show_msg ('Hello')

Nyní musíte tyto funkce zavolat takto:

func1 ()
func2 ()

Získáte následující výstup zobrazený na obrázku editoru spyder:

V rámci Pythonu je tento proces, kterým se ke skriptu připojí jakákoli data (pro tento scénář Ahoj nebo Ahoj), pojmenován Uzavření.

Jednoduché násobení pomocí Python Closure

Definovali jsme dvě funkce. Jeden je vnější, který má definován multiplikátor, a vnitřní, ve kterém bude hodnota předána při volání funkce. Ve vnější funkci jsme deklarovali proměnnou s předanou definovanou hodnotou multiplikátoru. Tato hodnota multiplikátoru 'n' byla vynásobena určitou hodnotou 'X' který je předán v tiskovém příkazu vnitřní funkci. Poté se vrátí vnitřní funkce, což je vnořená funkce, a poté se proměnné v tiskových příkazech volají jedna po druhé.

def out_multiply (n):
def in_multiply (x):
návrat x * n
návrat in_multiply

Nová proměnná nyní přiřadila nějakou hodnotu, která má být předána v parametru vnější funkce. Tato hodnota bude uložena v proměnné 'n', což je multiplikátor definovaný ve vnější funkci:

times3 = out_multiply (3)
times5 = out_multiply (5)

K těmto proměnným bude přiřazeno více hodnot, které budou uloženy do souboru 'X' proměnná definovaná ve vnitřní funkci, kterou je třeba vynásobit multiplikátorem 'n'. Když vytiskneme proměnnou pojmenovanou jako „časy“, funkci s nějakou celočíselnou hodnotou 'X' přiřazený v závorkách způsobí, že se to znásobí hodnotou vnější funkce 'n'.

První bude výstup 27 při provádění tiskového prohlášení, protože proměnná 'n' 3 jako multiplikátor a dali jsme 9 jako další celé číslo, které se má vynásobit.

tisk (krát 3 (9))

Druhý bude výstup 15 při provádění tiskového příkazu, protože proměnná 'n'3 jako multiplikátor a dali jsme 5 jako další celé číslo, které se má vynásobit.

tisk (krát5 (3))

Poslední bude výstup 30 při spuštění tiskového příkazu, protože rekurzivně volá časy na proměnnou funkce. Poprvé, časy ano 'n' mít 3 jako multiplikátor, který bude vynásoben na celé číslo 2. Při násobení bude výstup 6. Nyní bude tato 6 použita jako hodnota, poté předána jako argument proměnné funkci times, kde 'n' multiplikátor proměnné je 5. Takže když 5 se vynásobí 6 to bude výstup 30.

tisk (krát5 (krát3 (2)))

Výstup můžete vidět v konzole editoru Spyder.

Závěr

Uzávěry mohou bránit použití globálních hodnot a mohou mít formu skrývání dat. Mohlo by to také poskytnout objektově nebo subjektově orientovaný přístup k problému. Doufejme, že po provedení této příručky budete moci získat základy uzavření Pythonu.

Střední tlačítko myši nefunguje ve Windows 10
The prostřední tlačítko myši pomáhá procházet dlouhé webové stránky a obrazovky se spoustou dat. Pokud se to zastaví, budete nakonec používat klávesni...
Jak změnit levé a pravé tlačítko myši na počítači se systémem Windows 10
Je úplnou normou, že všechna zařízení počítačových myší jsou ergonomicky navržena pro praváky. K dispozici jsou však myší zařízení, která jsou speciál...
Emulace kliknutí myší vznášením pomocí myši Clickless Mouse ve Windows 10
Používání myši nebo klávesnice ve špatném držení těla nadměrného používání může mít za následek mnoho zdravotních problémů, včetně napětí, syndromu ka...