⊗pyPmFnNl 21 of 129 menu

Python-dagi nonlocal instruksiyasi

Ba'zi hollarda tashqi funksiyada ichki funksiya tomonidan kirish imkoni bo'lishi kerak bo'lgan o'zgaruvchi bo'ladi. Keling, outer funksiyasida i o'zgaruvchisini e'lon qilaylik. Ichki funksiyaga nisbatan bu o'zgaruvchi tashqi (global o'zgaruvchilar faqatgina tashqi kodda e'lon qilingan o'zgaruvchilardir) hisoblanadi. inner funksiyasiga i ga bir qo'shish vazifasini beraylik:

def outer(): i = 0 def inner(): i += 1 # [4, 9, 25] ni chiqaradi inner() return i

Biroq inner uchun i o'zgaruvchisi lokal hisoblanadi, Python uni e'lon qilinmagan deb hisoblaydi va mos xatolikni chiqaradi. Ilgari bunday xatolik global instruksiyasi yordamida tuzatilgan. Ammo bu yerda i tashqi o'zgaruvchi hisoblanadi, shuning uchun nonlocal instruksiyasidan foydalanish kerak. U ko'rsatilgan o'zgaruvchilar nomlarini globalni istisno qilgan holda, ya'ni eng yaqin ko'rish sohasidan oladi, i inner ichida ushbu funksiyadan yuqorida e'lon qilingan o'zgaruvchi bilan olinadi:

def outer(): i = 0 def inner(): nonlocal i i += 1 inner() return i print(outer()) # 1 ni chiqaradi

Quyidagi kodda ma'lum bir dasturchi xatoga yo'l qo'ydi:

num = 10 def outer(): num = 5 def inner(): num -= 2 inner() return num print(outer())

Ushbu kodda nima noto'g'ri? Kod muallifining xatosini toping va tuzating.

Quyidagi kodda ma'lum bir dasturchi xatoga yo'l qo'ydi:

num = 3 def outer(): num += 1 tst = num def inner(): tst = tst ** 3 inner() return tst print(outer())

Ushbu kodda nima noto'g'ri? Kod muallifining xatosini toping va tuzating.

Oʻzbek
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекTiếng Việt
Biz sayt ishlashi, tahlil qilish va shaxsiylashtirish uchun cookie-fayllardan foydalanamiz. Ma'lumotlarni qayta ishlash Maxfiylik siyosatiga muvofiq amalga oshiriladi.
hammasini qabul qilish sozlash rad etish