Избегайте его, если это возможно.
Вы можете получить и установить такие атрибуты, с помощью getattr
и setattr
, но они не могут быть доступны с обычным синтаксисом точки (что-то вроде obj.class
является синтаксической ошибкой), поэтому они боль, чтобы использовать.
Как упоминается в комментарии Aurora0001, соглашение, если вам «нужно» использовать, - это добавить символ подчеркивания. Наиболее распространенной причиной «необходимости» иметь такие атрибуты является то, что они генерируются программно из внешнего источника данных.
(Обратите внимание, что type
не является ключевым словом, так что вы можете сделать self.type
просто отлично.)
Обсуждение в комментариях [Почему не может быть имена атрибутов 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
'class' - это ключевое слово. Вы не можете его использовать. 'type' не является ключевым словом, поэтому вы можете. 'self.type = something' на самом деле даже не проблема, но переменная' type = x' является более крупной пробкой, потому что она скрывает встроенный 'type' – zvone
, который я вижу. Большое спасибо! – Pablo