Cel mai bun răspuns
Consultați acest cod.
- counter = 0
- def increment ():
- counter + = 1
- increment ()
Python nu are declarații variabile, deci trebuie să descopere domeniul variabilelor în sine. O face printr-o regulă simplă: dacă există o atribuire o variabilă din interiorul unei funcții, acea variabilă este considerată locală. Astfel, linia
contor + = 1
implicit face contorul local la increment (). Încercând însă să executați această linie, veți încerca să citiți valoarea contorului variabilei locale înainte ca acesta să fie atribuit, rezultând într-o UnboundLocalError.
Pentru a rezolva acest tip de eroare, efectuați următoarele modificări.
- counter = 0
- def increment ():
- contor global
- contor + = 1
- increment ()
Toate cele bune …!
Răspuns
UnboundLocalError este ridicat atunci când se face referire la o variabilă locală înainte ca aceasta să fie atribuit.
Este o subclasă a NameError
Înseamnă că aveți un identificator pe care ați încercat să îl accesați înainte ca acesta să fie atribuit sau poate declarat.
multe nenorociri ale limbajelor fără semantică slabă de tastare, moștenire multiplă și fără clasă de bază sau protocol comun.
depinde prea mult de excepțiile în care introspecția și deducerea compilatorului ar putea fi mai informative înainte ca codul să poată rula.
Ce crezi că economisești la tastarea caracterelor pentru a avea validare în codul tău, plătești cu urmele stivei .