Что означает `self` и чем он отличается от `cls`? Можно ли переименовать их?

В Python self — это ссылка на текущий экземпляр класса, через который внутри методов можно обращаться к атрибутам и другим методам этого объекта.

Короткий ответ

Что ответить на собеседовании

В Python self — это ссылка на текущий экземпляр класса, через который внутри методов можно обращаться к атрибутам и другим методам этого объекта.

Подробный разбор

Ответ с пояснениями

В Python self — это ссылка на текущий экземпляр класса, через который внутри методов можно обращаться к атрибутам и другим методам этого объекта.

Когда вы определяете метод в классе, первым параметром всегда должен быть self (хотя имя может быть другим, но по соглашению используется именно self). При вызове метода на объекте Python автоматически передаёт ссылку на этот объект в параметр self.

Пример:

class Person:
    def __init__(self, name):
        self.name = name

    def greet(self):
        print(f"Привет, меня зовут {self.name}")

p = Person("Аня")
p.greet()  # Выведет: Привет, меня зовут Аня

Здесь self.name — это атрибут конкретного объекта p. Без self методы не смогут знать, с каким именно объектом они работают.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее