Экземпляр создаётся вызовом класса с аргументами. Метод init записывает значения в атрибуты self, поэтому у каждого экземпляра будет собственное имя и возраст.
Как создать экземпляр класса с параметрами конструктора
Экземпляр создаётся вызовом класса с аргументами. Метод __init__ записывает значения в атрибуты self, поэтому у каждого экземпляра будет собственное имя и возраст.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Дан класс Python User, который должен хранить имя и возраст. Реализуйте его и создайте два независимых экземпляра с именами Анна и Борис и возрастами 30 и 25. Покажите, что изменение одного не меняет другого.
Ответ
Экземпляр создаётся вызовом класса с аргументами. Метод init записывает значения в атрибуты self, поэтому у каждого экземпляра будет собственное имя и возраст.
class User:
def __init__(self, name, age):
self.name = name
self.age = age
anna = User('Анна', 30)
boris = User('Борис', 25)
anna.age = 31
assert anna.age == 31
assert boris.age == 25
assert anna is not boris
Класс описывает поведение и способ инициализации, а переменные anna и boris ссылаются на конкретные объекты. Вызов init вручную не требуется: его вызывает механизм создания экземпляра. В прикладном коде проверку допустимого возраста можно добавить в инициализацию, если этого требует контракт.