Vad är obundet lokalt fel i python?


Bästa svaret

Se den här koden.

  1. counter = 0
  2. def inkrement ():
  3. räknare + = 1
  4. inkrement ()

Python har inte variabeldeklarationer, så det måste räkna ut omfattningen av variablerna själv. Det gör det med en enkel regel: Om det finns en uppgift till en variabel inuti en funktion, den variabeln anses vara lokal. Alltså raden

räknare + = 1

gör motståndet implicit till inkrement (). Om man försöker köra den här raden försöker man dock läsa värdet på den lokala variabla räknaren innan den tilldelas, vilket resulterar i en obunden lokal.

För att lösa denna typ av fel gör du följande ändringar.

  1. counter = 0
  2. def inkrement ():
  3. global räknare
  4. räknare + = 1
  5. inkrement ()

All the Best …!

Svar

UnboundLocalError tas upp när en lokal variabel refereras innan den har gjorts tilldelad.

Det är en underklass av NameError

Det betyder att du har en identifierare som du försökte komma åt innan den har tilldelats eller kanske förklarats.

En av de många svårigheterna med språk utan svag typsemantik, flera arv och ingen gemensam basklass eller protokoll.

Det finns s för mycket beroende av undantag där introspektion och kompilatorinferens kan vara mer informativ innan koden kan köras.

Vad du tror att du sparar för att skriva tecken för att få validering i din kod, betalar du för med stackspår .

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *