Рассмотрим следующий класс:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
Мои коллеги имеют тенденцию определять это так:
class Person:
name = None
age = None
def __init__(self, name, age):
self.name = name
self.age = age
Основная причина этого заключается в том, что выбранный им редактор показывает свойства для автозаполнения.
Лично мне не нравится последний, потому что нет никакого смысла в том, что класс имеет эти свойства None
.
Какой из них будет лучше практиковать и по каким причинам?
__init__
уже имеющемся автозаполнении и т. Д. Кроме того, использование None
предотвращает IDE выводить лучший тип для атрибута, поэтому вместо этого лучше использовать разумное значение по умолчанию (когда возможно).
typing
модуль, который позволяет вам предоставлять подсказки для IDE и линтера, если такие вещи щекотят ваше воображение ...
self
. Даже если self.name
и self.age
не были назначены в __init__
они не будут отображаться в случае self
, они появляются только в классе Person
.