Hva er ubundet lokal feil i python?


Beste svaret

Se denne koden.

  1. counter = 0
  2. def inkrement ():
  3. teller + = 1
  4. inkrement ()

Python har ikke variabelerklæringer, så den må selv finne ut omfanget av variabler. Det gjør det med en enkel regel: Hvis det er en oppgave å en variabel inne i en funksjon, blir denne variabelen ansett som lokal. Dermed blir linjen

teller + = 1

gjør implisitt teller lokalt til inkrement (). Prøver å utføre denne linjen vil imidlertid prøve å lese verdien av den lokale variabeltelleren før den tildeles, noe som resulterer i en Ubundet Lokalfeil.

For å løse denne typen feil gjør du følgende endringer.

  1. counter = 0
  2. def inkrement ():
  3. global teller
  4. teller + = 1
  5. økning ()

Alt det beste …!

Svar

UnboundLocalError heves når det refereres til en lokal variabel før den er blitt tildelt.

Det er en underklasse av NameError

Det betyr at du har en identifikator du prøvde å få tilgang til før den ble tildelt eller kanskje erklært.

En av de mange vanskeligheter med språk uten svak typesemantikk, flere arv og ingen felles baseklasse eller protokoll.

Der er jeg s for mye avhengighet av unntak der introspeksjon og kompilatoravledning kan være mer informativ før koden kan kjøres.

Det du tror du sparer ved å skrive inn tegn for å få validering i koden din, betaler du for med stakkspor .

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *