On 01/11/12 06:57, anatoly techtonik wrote:

[...]
UnboundLocalError: local variable 'FONT_NAMES' referenced before assignment


As you may see there is inconsistency between handling of line 6 -
"if len(DEBUG):" and line 8 - "if len(FONT_NAMES):". This is very magical
and hard to troubleshoot.

I wouldn't call it an inconsistency, because the rules for deciding whether
something is treated as local or global is consistently applied to all
functions and variables. I would use the word "difference" instead -- there
is a difference between line 6 and line 8 because there is a difference
between DEBUG (global) and FONT_NAMES (local).

As to whether this is "magical" behaviour, I suppose in some sense it is,
but if so, it is more like a light sprinkling of pixie dust rather than
full-blown dark voodoo magic.


I wonder if this message can be improved with a
pointer to the concept on when global variables become local?

If you have a suggestion for an improved message, please tell us. Or raise
an issue on the bug tracker.



--
Steven
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to