Зачем нужен __init__ в классе?
Вижу def __init__(self, ...) почти в каждом классе. Что это за метод и обязателен ли он?
4 ответа
__init__ — это конструктор, он вызывается автоматически в момент создания объекта и нужен, чтобы задать начальные значения атрибутов.
class User:
def __init__(self, name, age):
self.name = name
self.age = age
u = User("Аня", 20) # тут вызывается __init__
print(u.name) # Аня
Когда ты пишешь User("Аня", 20), Python создаёт пустой объект и сразу зовёт __init__, передавая туда аргументы. Не обязателен: если его нет, объект просто создастся без начальной настройки.
Чтобы "наполнить" объект данными при создании. Без него пришлось бы вручную писать u.name = ... после каждого создания, а это неудобно и легко забыть.
init - это конструктор, он вызывается автоматически в момент создания объекта и нужен, чтобы задать начальные значения атрибутов. Он нужен для создания объектов
Это не совсем конструктор, настоящий конструктор это __new__, а __init__ только инициализатор.