Hvad er ubundet lokal fejl i python?


Bedste svar

Se denne kode.

  1. counter = 0
  2. def inkrement ():
  3. tæller + = 1
  4. inkrement ()

Python har ikke variabeldeklarationer, så det skal selv finde ud af omfanget af variabler. Det gør det ved en simpel regel: Hvis der er en opgave til en variabel inde i en funktion, den variabel betragtes som lokal. Linjen

tæller + = 1

gør indirekte tæller lokalt til inkrement (). Forsøg på at udføre denne linje vil dog prøve at læse værdien af ​​den tæller til lokal variabel, før den tildeles, hvilket resulterer i en Ubundet Lokalfejl.

For at løse denne type fejl foretag følgende ændringer.

  1. counter = 0
  2. def inkrement ():
  3. global tæller
  4. tæller + = 1
  5. inkrement ()

Alt det bedste …!

Svar

UnboundLocalError hæves, når der henvises til en lokal variabel, før den er blevet tildelt.

Det er en underklasse af NameError

Det betyder, at du har en identifikator, du har forsøgt at få adgang til, før den er tildelt eller måske erklæret.

En af de mange sprogproblemer uden svag typesemantik, flere arv og ingen fælles baseklasse eller protokol.

Der er jeg er for meget afhængig af undtagelser, hvor introspektion og compiler-inferens kunne være mere informativ, før koden kunne køre.

Hvad du tror du gemmer ved at skrive tegn for at få validering i din kode, betaler du for med stakspor .

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *