NameError во вложенных представлениях [duplicate]
This question already has an answer here:
Accessing class variables from a list comprehension in the class definition 5 answersУ меня есть этот код в файле
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 <module>
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 <setcomp>
{(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]
Я действительно не вижу проблемы здесь. Isn & APOS; тx
определяется в понимании?
Что странно, так это то, как это выполняется без ошибок при вставке прямо в интерпретатор Python ...
EDIT: Это работает, если я использую понимание списка, а не заданное понимание