[Python-Dev] Improve error message "UnboundLocalError: local variable referenced before assignment"

anatoly techtonik techtonik at gmail.com
Wed Oct 31 20:57:28 CET 2012

Here is the code:


DEBUG = []

def names():
  if len(DEBUG):
  if len(FONT_NAMES):
  if len(FONT_NAMES)==0:
    FONT_NAMES = "query()"


Here is the output:

Traceback (most recent call last):
  File "globalocal.py", line 13, in <module>
  File "globalocal.py", line 8, in names
    if len(FONT_NAMES):
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 wonder if this message can be improved with a
pointer to the concept on when global variables become local?

anatoly t.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20121031/7b9af961/attachment.html>

More information about the Python-Dev mailing list