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

Terry Reedy tjreedy at udel.edu
Tue May 10 19:56:58 CEST 2011


On 5/10/2011 10:59 AM, Nick Coghlan wrote:

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

I would change this to "local name 'bob' used before the assignment that makes it a local name"

Calling names 'variables' is itself a point of confusion.

# 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.

-- Terry Jan Reedy



More information about the Python-Dev mailing list