⊗pyPmFnNl 21 of 129 menu

Instrucțiunea nonlocal în Python

Există cazuri când într-o funcție exterioară există o variabilă la care trebuie să obținem acces din funcția interioară. Să declarăm în funcția outer variabila i. În raport cu funcția interioară, această variabilă va fi una exterioară (variabilele globale sunt cele declarate DOAR în codul exterior). Iar funcției inner îi vom atribui adăugarea unei unități la i:

def outer(): i = 0 def inner(): i += 1 # va afișa [4, 9, 25] inner() return i

Cu toate acestea, pentru inner variabila i este una locală, Python o consideră nedecimalrată și afișează eroarea corespunzătoare. În trecut, o astfel de eroare era corectată cu ajutorul instrucțiunii global. Totuși, aici i este o variabilă exterioară, prin urmare ar trebui să folosim instrucțiunea nonlocal. Ea preia numele de variabile enumerate din domeniul de vizibilitate cel mai apropiat, excluzând pe cel global, adică i în interiorul inner va fi preluată din variabila declarată înainte de această funcție:

def outer(): i = 0 def inner(): nonlocal i i += 1 inner() return i print(outer()) # va afișa 1

În următorul cod, un anumit programator a făcut o greșeală:

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

Ce nu este în regulă cu acest cod? Găsiți și corectați greșeala autorului codului.

În următorul cod, un anumit programator a făcut o greșeală:

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

Ce nu este în regulă cu acest cod? Găsiți și corectați greșeala autorului codului.

Română
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Folosim cookie pentru funcționarea site-ului, analiză și personalizare. Prelucrarea datelor are loc în conformitate cu Politica de confidențialitate.
acceptă toate configurează respinge