2016-10-10 3 views
0

Я проверил руководство по стилю Python и не нашел конкретных ссылок на имена экземпляров экземпляра с зарезервированными словами, например. self.type, self.class и т. Д.Имя переменной экземпляра зарезервированное слово в Python

Какова наилучшая практика для этого?

+1

Обсуждение в комментариях [Почему не может быть имена атрибутов Python ключевых слов?] (HTTP: // StackOverflow. com/questions/9746838/why-cant-attribute-names-be-python-keywords) предполагает, что вы должны [добавить подчеркивание] (http://stackoverflow.com/questions/9746838/why-cant-attribute-names- быть-питон-ключевые слова # comment12398462_9746838). – Aurora0001

+0

'class' - это ключевое слово. Вы не можете его использовать. 'type' не является ключевым словом, поэтому вы можете. 'self.type = something' на самом деле даже не проблема, но переменная' type = x' является более крупной пробкой, потому что она скрывает встроенный 'type' – zvone

+0

, который я вижу. Большое спасибо! – Pablo

ответ

1

Избегайте его, если это возможно.

Вы можете получить и установить такие атрибуты, с помощью getattr и setattr, но они не могут быть доступны с обычным синтаксисом точки (что-то вроде obj.class является синтаксической ошибкой), поэтому они боль, чтобы использовать.

Как упоминается в комментарии Aurora0001, соглашение, если вам «нужно» использовать, - это добавить символ подчеркивания. Наиболее распространенной причиной «необходимости» иметь такие атрибуты является то, что они генерируются программно из внешнего источника данных.

(Обратите внимание, что type не является ключевым словом, так что вы можете сделать self.type просто отлично.)

Смежные вопросы