Python 3 UnboundLocalError not detected when variable referenced after shadowed by exception variable

Aperta
#345 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
45/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
python
Ambito
tooling

Direzione di ricerca

Inizia eseguendo l’esempio Python fornito tramite pyflakes e traccia come la gestione della variabile di eccezione influisce sul riferimento successivo. Non sono indicati file o test; il lavoro è considerato completato quando viene segnalato il riferimento successivo all’eccezione, con un test di regressione che copra questo comportamento di Python 3.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

python3

For

def a():
    e = 1
    try:
        raise RuntimeError('forced error')
    except Exception as e:
        print(e)
    print(e)

a()

In both Python 2 and 3, exception variable e shadows the local variable e, and is not being reported.

In python3, e is unbound after the exception block, and a UnboundLocalError occurs when the local variable e is referenced because it was disappeared.

Lingua principale
Python
Stelle
1.5k
Fork
205
Merge medio
1g 2h
PR unite (30g)
5

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di PyCQA/pyflakes

Tutte le issue di PyCQA/pyflakes

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.