Here is the code:

---[cut]-----------------------------

DEBUG = []
FONT_NAMES = []

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

names()
---[cut]-----------------------------

Here is the output:

Traceback (most recent call last):
  File "globalocal.py", line 13, in <module>
    names()
  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.
_______________________________________________
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