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