Che cosè lerrore locale non associato in Python?


Migliore risposta

Vedi questo codice.

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

Python non ha dichiarazioni di variabili, quindi deve capire da solo lambito delle variabili. Lo fa con una semplice regola: se cè un assegnamento a una variabile allinterno di una funzione, quella variabile è considerata locale. Pertanto, la riga

counter + = 1

rende implicitamente counter locale a increment (). Se si tenta di eseguire questa riga, tuttavia, si tenterà di leggere il valore della variabile locale counter prima che venga assegnata, risultando in un UnboundLocalError.

Per risolvere questo tipo di errore, apportare le seguenti modifiche.

  1. counter = 0
  2. def increment ():
  3. contatore globale
  4. counter + = 1
  5. increment ()

Cordiali saluti …!

Answer

UnboundLocalError viene sollevato quando si fa riferimento a una variabile locale prima che sia stata assegnato.

È una sottoclasse di NameError

Significa che hai un identificatore a cui hai tentato di accedere prima che sia stato assegnato o forse dichiarato.

Uno di i molti guai dei linguaggi senza semantica di digitazione debole, ereditarietà multipla e nessuna classe o protocollo di base comune.

Fa troppo affidamento sulle eccezioni in cui lintrospezione e linferenza del compilatore potrebbero essere più informative prima che il codice possa essere eseguito.

Quello che pensi di risparmiare nella digitazione dei caratteri per avere la convalida nel tuo codice, lo paghi con le tracce dello stack .

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *