в моем случае у меня экземпляр класса или объект класса?
в данном случае вы пользуетесь аттрибутами класса, а не экземпляра
инит нужен для того чтобы не создать класс-урод, если можно так выразиться. Инит включает в себя обязательные свойства, без которых ты не сможешь создать объект. Ну это как я понимаю.
Класс - это некая абстрактная сущность, чертёж, если хотите, описывающий определённый тип объектов. Атрибуты, прописываемые непосредственно в классе, при создании объектов будут присущи всем объектам класса без исключения в том виде, в котором они указаны в классе. Метод инициализации объекта класса позволяет определить некоторый набор атрибутов, который может не быть одинаковым для всех объктов класса, а также сразу же задать этим атрибутам значения при создании объекта. Кроме того, иногда в методе инициализации вызываются какие-то методы, которые должны выполниться при создании объекта класса.
если дополнить это сообщение конкретным примером, было бы здорово. А так почти как в книжке
о, спасибо за объяснение. Буду думать
Извините, особо нет времени накидывать примеры. Их в целом достачно в тех же книжках) Просто важно понимать, что атрибуты класса и атрибуты объекта класса это разные вещи. Кстати, атрибуты объекта класса можно спокойно добавлять после создания объекта (если только вы не используете slots в своём классе), даже если их не было в методе инициализации.
После слова 'кстати' как будто китайскую грамоту прочел 😀 Нужно будет ООП куда-нибудь применить, чтобы понять. Спасибо за пищу для размышлений
Вот, посмотрите на эти скрины. В методе init изначально нет параметра age. Однако мы спокойно добавили его в конкретный объект. И теперь в объекте 1 есть age, а в объекте 2 - нет. Кроме того, при создании объекта мы каждый раз увеличиваем на 1 значение атрибута класса. И это значение одинаково для всех объектов класса. Если бы мы обращались при увеличении к атрибуту класса через селф, результат был бы другим, к слову.
Эм
теперь почти понятно. Но чтобы пришло окончательное понимание, нужно испытать на собственной шкуре. Спасибо 👍🏿
Да не за что особо. ООП довольно трудно понять без практики. А некоторые теоретически возможные в ООП вещи можно вообще никогда не повстречать))
Обсуждают сегодня