Piton

Python bezárások bemutatója

Python bezárások bemutatója
A bezárás egy beágyazott belső módszer vagy függvény, amely felismeri és kiváltsággal rendelkezik a változók használatára akkor is, ha a külső függvény végrehajtása befejeződött abban a helyi körben, amelyben létrehozták. A változónak külső funkcióból vagy hatókörből kell származnia, és nincs feltétlenül korlátozva a használandó helyi térben. A Python bezárásának három jellemzője van, ezek a következők:

Beágyazott funkció

Először meg kell értened, mi a beágyazott módszer. A beágyazott függvény meghatározható egy másik módszerben megadott módszerként. A rekurzív függvények elérhetik a külső hatókör változóit. A nem lokális változók megváltoztatásához kifejezetten nem lokális kulcsszavakkal definiáljuk őket, mivel azok természetüknél fogva csak olvashatók. Tehát először nézze meg a Spyder Python 3-ban végrehajtott beágyazott funkciót.

Két funkciót határoztunk meg: a külső és a belső. A külső függvényben deklaráltunk egy változót, benne némi szövegértékkel.

def external_func ()
msg = 'Hy! Aqsa Yasin vagyok

Ezt a változót a belső függvényben nyomtatták ki egy nyomtatási utasítás segítségével. Ezután visszaadják a belső funkciót, amely beágyazott függvény, és ezt követően meghívták a külső függvényt.

def internal_func ()
nyomtatás (msg)
return belső_funkció ()
belső_funkció ()

Ha nem a return kulcsszót használja a belső függvény visszaadásához, akkor is ugyanaz az eredmény jelenik meg.

Amikor futtatja ezt az egyszerű kódot, akkor a szöveg megkapja a változó értékeként definiált szöveget 'msg'.

Kimenet: Hy! Aqsa Yasin vagyok

Most definiálja ugyanazt a beágyazott függvényt, visszatérési kulcsszó és változó nélkül 'msg' paraméterben, és ugyanazt a kimenetet fogja kapni.

Kimenet: Hello

Egyszerű bezárási funkció

Használja ugyanazt a kódot, kis változtatással az utolsó két sorban. A húrral 'Helló', a show_msg () metódust hívták meg, és a visszatérő metódust a szóhoz kötötték 'egy másik'. Hívás közben egy másik(), a szöveg 'Helló' még mindig felidézték, míg a show_msg () módszer már futott. Ne felejtse el hozzáadni a változót 'msg' a külső funkción belül.

Amikor futtatja ezt a kódot, megmutatja, hogy a belső funkció, amely a előadás(), a változóhoz van rendelve 'egy másik'.

Kimenet: .show at 0x0000020CCED4D820>

Egyszerűen kinyomtathatja a név változóhoz rendelt függvény 'egy másik' mint:

nyomtatás (másik.__név__)

Kibocsátja a függvény nevét.

Kimenet: show

Most, ha ezt a változót függvényként szeretné végrehajtani, hasonlóan a többi módszerhez, megteheti zárójelek hozzáadásával és így hívhatja:

másik = show_msg ("Hello")
egy másik()
egy másik()

Ezt annyiszor hívhatja, ahányszor csak akarja.

Amikor futtatja ezt a kódot, valami ilyesmit jelenít meg:

Kimenet:

Helló

Helló

Helló

Most már láthatja, hogy a külső függvény végrehajtásának befejezése után a belső függvény még mindig emlékszik a változókra és egyéb dolgokra, amelyeket a helyi térben hoztak létre vagy definiáltak.

Zárási funkció a paraméterek használatával

Most hozzáadtunk paramétereket, miközben egy változót adtunk át a külső függvényben:

def show_msg (msg)

A külső függvényparaméterbe továbbított értéket egy változóhoz rendeljük, amelyet ezen külső függvényen belül definiálunk:

Üzenet = üzenet

Adjon át néhány string értéket az újonnan létrehozott változókban az utolsó sorban:

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

Most ezeket a funkciókat kell így hívnia:

func1 ()
func2 ()

A következő kimenetet kapja, amelyet a spyder szerkesztő képe mutat:

A Pythonon belül ezt a folyamatot, amellyel bármilyen adat (szia vagy Hello, ehhez a szcenárióhoz) csatol a szkripthez, elnevezése Bezárás.

Egyszerű szorzás Python bezárással

Két funkciót definiáltunk. Az egyik külső, amelynek szorzója van definiálva, és a belső, amelyben az érték átkerül a függvény meghívása közben. A külső függvényben deklaráltunk egy változót, amelyben meghatározott szorzóértéket adtunk át. Ez a szorzóérték 'n' meg van szorozva valamilyen értékkel 'x' amelyet a nyomtatott utasításban átadnak a belső funkciónak. Ezután visszaküldi a belső függvényt, amely beágyazott függvény, és ezt követően a nyomtatási utasításokban egymás után hívták meg a változókat.

def out_multiply (n):
def in_multiply (x):
vissza x * n
vissza sokszorosan

Az új változó hozzárendelt némi értéket, amelyet át kell adni a külső függvény paraméterében. Ez az érték el lesz mentve a változóban 'n', amely a külső függvényben meghatározott szorzó:

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

Ezekhez a változókhoz több értéket rendelünk, amelyek a 'x' a belső függvényben definiált változó, amelyet szorzóval kell szorozni 'n'. Amikor kinyomtatjuk az 'idők' nevű változót, egy egész értékű függvényt 'x' a zárójelben hozzárendelve meg fog szorozni a külső függvény értékével 'n'.

Az első fog kimenet 27 nyomtatási utasítás végrehajtása közben, mert változó 'n' van 3 szorzóként, és megadtuk 9 más egész számként, amelyet meg kell szorozni.

nyomtatás (alkalommal3 (9))

A második lesz kimenet 15 míg a print utasítás végrehajtása, mert változó 'n' van 3 szorzóként, és megadtuk 5 más egész számként, amelyet meg kell szorozni.

nyomtatás (times5 (3))

Az utolsó lesz kimenet 30 nyomtatási utasítás futtatása közben, mert rekurzív módon hívta meg az időket a változó függvényéhez. Az első alkalom, az idők megtörténtek 'n' miután 3 szorzóként, amelyet egész számra szorozunk 2. Szorzáskor kinyomtatja 6. Ezt a 6-ot értékként fogjuk használni, majd argumentumként átadjuk a times 'változó függvénynek, ahol a 'n' változó szorzó az 5. Így amikor 5 szorozva 6 kimenetet fog adni 30.

nyomtatás (times5 (times3 (2)))

A kimenetet a Spyder szerkesztő konzolján láthatja.

Következtetés

A bezárások megtilthatják a globális értékek használatát, és az adatok elrejtését is lehetővé tehetik. Objektum- vagy entitásorientált megközelítést nyújthat a kérdéshez is. Remélhetőleg az útmutató követése után elsajátíthatja a Python bezárásának alapjait.

A legjobb parancssori játékok Linuxhoz
A parancssor nem csak a legnagyobb szövetséges a Linux használatakor, hanem a szórakozás forrása is lehet, mert sok olyan szórakoztató játék lejátszás...
A legjobb Gamepad Mapping alkalmazások Linuxhoz
Ha egy tipikus billentyűzet és egér beviteli rendszer helyett szeretnél játékokat játszani Linuxon egy játékvezérlővel, van néhány hasznos alkalmazás ...
Hasznos eszközök Linux játékosok számára
Ha szeretsz Linuxon játszani, akkor valószínű, hogy olyan alkalmazásokat és segédprogramokat használtál, mint a Wine, a Lutris és az OBS Studio a játé...