⊗pyPmFnNl 21 of 129 menu

Python-da nonlocal instruksiyasi

Elə hallar olur ki, xarici funksiyada daxili funksiyadan çıxış etmək lazım olan dəyişən olur. outer funksiyasında i dəyişənini təyin edək. Daxili funksiyaya nisbətən bu dəyişən xarici olacaq (qlobal dəyişənlər YALNIZ xarici koddə təyin olunan dəyişənlərdir). inner funksiyasına isə i dəyişəninə bir vahid əlavə etməyi təyin edək:

def outer(): i = 0 def inner(): i += 1 # [4, 9, 25] çap edəcək inner() return i

Lakin inner üçün i dəyişəni lokal dəyişəndir, Python onu təyin olunmamış hesab edir və uyğun xətanı çap edir. Əvvəllər belə bir xəta global instruksiyası ilə düzəlirdi. Lakin burada i xarici dəyişəndir, ona görə də nonlocal instruksiyasından istifadə etmək lazımdır. O, qlobalı istisna etməklə, ən yaxın görünmə sahəsində göstərilən dəyişən adlarını götürür, yəni inner daxilindəki i bu funksiyadan yuxarıda təyin olunmuş dəyişən ilə götürüləcək:

def outer(): i = 0 def inner(): nonlocal i i += 1 inner() return i print(outer()) # 1 çap edəcək

Aşağıdakı kodda müəyyən proqramçı səhv etmişdir:

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

Bu kodda nə səhvdir? Kodun müəllifinin səhvini tapın və düzəldin.

Aşağıdakı kodda müəyyən proqramçı səhv etmişdir:

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

Bu kodda nə səhvdir? Kodun müəllifinin səhvini tapın və düzəldin.

Azərbaycan
AfrikaansБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Biz saytin işi, analitika və fərdiləşdirmə üçün cookie istifadə edirik. Məlumatların emalı Məxfilik Siyasəti əsasında həyata keçirilir.
hamısını qəbul et konfiqurasiya et rədd et