Я работаю на Python 2.7.8 (Anaconda Distribution), и этот код не работает. Это похоже на ошибку в реализации Python, но я ничего не пропустил?
class C:
x = {2 : 1}
y = {w for w in x if x[w]==1}
Запуск этого кода дает следующее сообщение об ошибке:
NameError: глобальное имя 'x' не определено
Сообщение об ошибке также кажется мне неправильным.
Обратите внимание, что следующие два очень похожих фрагмента кода работают без проблем:
# this works fine:
class C:
x = {2 : 1}
y = [w for w in x if x[w]==1]
# this works fine too:
x = {2 : 1}
y = {w for w in x if x[w]==1}