Как я могу получить доступ к атрибутам, которые имеют то же имя, что и зарезервированные ключевые слова? - PullRequest
0 голосов
/ 24 января 2019

Я вызываю API, который возвращает AttributeDict, который имеет ряд атрибутов, таких как to и from.

Для доступа к этим атрибутам я использую точечную нотацию.Например, я использую object.to, и это прекрасно работает.

Когда я пытаюсь использовать object.from, я получаю сообщение об ошибке SyntaxError: invalid syntax.Я предполагаю, что это потому, что from является ключевым словом в Python .

Если это так, возможно ли получить к from точку?На данный момент я использую object["from"], который работает, но не соответствует остальной части моего кода.

1 Ответ

0 голосов
/ 24 января 2019

Хотя можно использовать getattr для доступа к таким атрибутам:

val = getattr(ad, 'from')

это более громоздко, чем синтаксис ad['from'], поддерживаемый вашим AttributeDict, и не удовлетворяет ваше желание использовать точечные обозначения.

В настоящее время нет возможности доступа к таким атрибутам с точечной нотацией. Просто придерживайтесь индексации. Он обрабатывает зарезервированные имена, имена с пробелами / дефисами / и т.д. в них и имена, которые конфликтуют с существующими методами (при условии разумной реализации AttributeDict). Даже если вы используете getattr, getattr(ad, 'get') все равно, вероятно, вернет метод AttributeDict get вместо значения для ключа 'get'.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...