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

Как вы получаете доступ к другим переменным класса из понимания списка в определении класса? Следующее работает в Python 2, но не работает в Python 3:

class Foo:
    x = 5
    y = [x for i in range(1)]

Python 3.2 выдает ошибку:

NameError: global name 'x' is not defined

ПопыткаFoo.x Безразлично»тоже не работает. Любые идеи о том, как сделать это в Python 3?

Несколько более сложный мотивирующий пример:

from collections import namedtuple
class StateDatabase:
    State = namedtuple('State', ['name', 'capital'])
    db = [State(*args) for args in [
        ['Alabama', 'Montgomery'],
        ['Alaska', 'Juneau'],
        # ...
    ]]

В этом примереapply() был бы неплохой обходной путь, но он, к сожалению, удален из Python 3.

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

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