NameError во вложенных представлениях [duplicate]

На этот вопрос уже есть ответ здесь:

Доступ к переменным класса из списка понимания в определении класса 5 ответов

У меня есть этот код в файле

class Sudoku(dict):
    COLUMNS = [
        {(x, y) for y in xrange(9)} for x in xrange(9)
    ]

Когда я бегуpython broken.pyЯ получаю трассировку:

Traceback (most recent call last):
  File "U:\broken.py", line 1, in 
    class Sudoku(dict):
  File "U:\broken.py", line 3, in Sudoku
    {(x, y) for y in xrange(9)} for x in xrange(9)
  File "U:\broken.py", line 3, in 
    {(x, y) for y in xrange(9)} for x in xrange(9)
NameError: global name 'x' is not defined
[Finished in 0.1s with exit code 1]

Я неЯ действительно не вижу здесь проблемы. неx определяется в понимании?

Какие'Странно, как это выполняется без ошибок при вставке прямо в интерпретатор Python ...

РЕДАКТИРОВАТЬ: Это работает, если я использую понимание списка, а не заданное понимание

Ответы на вопрос(5)

Ваш ответ на вопрос