Одни из основных концепций, которые новички встречают при изучении Python и особенно объектно-ориентированного программирования (ООП), это __init__
и self
. Это ключевые элементы классов в Python, понимание которых является важным шагом в освоении языка.
Освойте Python на курсе от Skypro. Вас ждут 400 часов обучения и практики (достаточно десяти часов в неделю), подготовка проектов для портфолио, индивидуальная проверка домашних заданий и помощь опытных наставников. Получится, даже если у вас нет опыта в IT.
Пример проблемы
Допустим, есть класс, который описывает сущность «Автомобиль».
class Car: def __init__(self, color, brand): self.color = color self.brand = brand
Здесь видим две незнакомые конструкции: __init__
и self
. Что они делают?
Разбор init
__init__
— это специальная функция, которая вызывается при создании нового объекта класса. Она также известна как конструктор класса. Это место, где обычно устанавливаются начальные значения атрибутов класса.
В примере выше, __init__
принимает три аргумента: self
, color
и brand
. color
и brand
— это значения, которые передаются при создании нового объекта класса Car
, и они устанавливаются в качестве атрибутов объекта.
my_car = Car('blue', 'Toyota')
В этом случае ‘blue’ и ‘Toyota’ передаются в __init__
и устанавливаются в качестве атрибутов color
и brand
для my_car
.
На курсе Skypro «Python-разработчик» освоите основные инструменты программирования, получите опыт на реальных проектах и сможете стартовать в профессии уверенным новичком. Преподаватели — практикующие программисты с большим опытом, а в центре карьеры помогут составить цепляющее резюме и подготовиться к собеседованию.
Разбор self
self
— это ссылка на текущий экземпляр класса. Это способ обращения к атрибутам и методам класса изнутри самого класса.
В примере выше, self.color = color
устанавливает атрибут color
текущего объекта класса Car
в значение color
, переданное в __init__
.
Следует отметить, что self
не передается при создании нового объекта класса. Python автоматически передает ссылку на текущий объект в self
.
my_car = Car('blue', 'Toyota') # self не передается
В заключение, __init__
и self
являются важными концепциями в Python, особенно в контексте ООП. __init__
используется для инициализации новых объектов класса, а self
— для ссылки на текущий объект класса.
Добавить комментарий