Ответ
self
— это общепринятое имя для первого параметра метода экземпляра класса в Python. Он представляет собой ссылку на сам экземпляр, через который был вызван метод.
Использование self
позволяет методу получать доступ к атрибутам и другим методам, принадлежащим этому конкретному экземпляру.
Ключевые моменты:
- Это соглашение: Имя
self
не является ключевым словом. Технически его можно назвать как угодно, но отступление от этого соглашения крайне не рекомендуется (PEP 8). - Явная передача: Python передает ссылку на экземпляр в качестве первого аргумента неявно при вызове метода. Например,
my_object.method(arg1)
интерпретируется какMyClass.method(my_object, arg1)
. - Доступ к данным: Без
self
метод не сможет работать с состоянием объекта (его атрибутами).
Пример:
class Car:
def __init__(self, model, color):
# self.model создает атрибут экземпляра
self.model = model
self.color = color
self.is_running = False
def start_engine(self):
# self.is_running обращается к атрибуту этого экземпляра
if not self.is_running:
self.is_running = True
# self.display_status() вызывает другой метод этого же экземпляра
print(f"Двигатель {self.model} запущен.")
else:
print(f"Двигатель {self.model} уже работает.")
my_car = Car("Tesla Model S", "Red")
my_car.start_engine() # Python неявно передает my_car в качестве self