[Python-Dev] more timely detection of unbound locals (original) (raw)

Nick Coghlan ncoghlan at gmail.com
Tue May 10 16:59:08 CEST 2011


On Tue, May 10, 2011 at 11:11 PM, R. David Murray <rdmurray at bitdance.com> wrote:

How about:

"reference to variable 'y' precedes an assignment that makes it a local variable"

For comparison, the error messages I was able to elicit from 2.7 were as follows:

Module level

NameError: name 'bob' is not defined

Function level reference to implicit global

NameError: global name 'bob' is not defined

Early reference to local

UnboundLocalError: local variable 'bob' referenced before assignment

Early reference from closure

NameError: free variable 'bob' referenced before assignment in enclosing scope

Personally, I would just add "in current scope" to the existing error message for the unbound local case (and potentially collapse the exception hierarchy a bit by setting UnboundLocalError = NameError).

Cheers, Nick.

-- Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia



More information about the Python-Dev mailing list