Ответ
self — это первый параметр методов экземпляра класса в Python. Это ссылка на конкретный экземпляр объекта, для которого вызывается метод. Через self метод получает доступ к атрибутам и другим методам этого объекта.
Зачем это нужно:
- Python не делает этого автоматически. Явное указание
selfделает работу с атрибутами экземпляра предсказуемой. - Позволяет отличать атрибуты экземпляра от локальных переменных метода и атрибутов класса.
Пример:
class User:
# Атрибут класса
platform = "MyApp"
def __init__(self, name, age):
# self.name — атрибут экземпляра
self.name = name
self.age = age
def introduce(self):
# Обращение к атрибуту экземпляра через self
return f"Меня зовут {self.name}, мне {self.age} лет. Я с платформы {self.platform}."
# Создаем экземпляры
user1 = User("Анна", 30)
user2 = User("Петр", 25)
print(user1.introduce()) # self внутри introduce ссылается на user1
print(user2.introduce()) # self внутри introduce ссылается на user2
Важно: Название self — это соглашение, а не строгое правило языка, но его повсеместно используют и настоятельно рекомендуют придерживаться.