Почему имена атрибутов не могут быть ключевыми словами Python?

Существует ограничение на синтаксис доступа к атрибутам в Python (по крайней мере, в реализации CPython 2.7.2):

>>> class C(object): pass
>>> o = C()
>>> o.x = 123  # Works
>>> o.if = 123
    o.if = 123
       ^
SyntaxError: invalid syntax

Мой вопрос двоякий:

Есть ли фундаментальная причина, почему использование имен атрибутов ключевых слов Python (как вo.if = 123) запрещен?/ Где задокументировано указанное выше ограничение имен атрибутов?

Было бы целесообразно сделатьo.class = …в одной из моих программ, и я немного разочарован тем, что не смог этого сделать (o.class_ будет работать, но выглядит не так просто).

PS: Проблема, очевидно, в том, чтоif а такжеclass являются ключевыми словами Python. Вопрос в томПочему использование ключевых слов в качестве имен атрибутов было бы запрещено (я не вижу никакой двусмысленности в выраженииo.class = 123) и будь этодокументированный.

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

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