Справочник · модуль 9 «Объекты и классы»
Self
Первый параметр метода называют self. Это сам объект. Через self читают и меняют его атрибуты: self.name.
Сравнение из жизни
Как слово «я» в рассказе: каждый объект говорит о себе.
Пример
Забыли self в скобках
class Cat:
def __init__(name, age):
self.name = name
cat = Cat("Бит", 3)Traceback (most recent call last):
File "main.py", line 5, in <module>
cat = Cat("Бит", 3)
~~~^^^^^^^^^^
TypeError: Cat.__init__() takes 2 positional arguments but 3 were givenУчитель в уроке Первая ошибка: забыли self в скобках. Python передаёт объект сам, а метод не ждёт его. Вторая ошибка: забыли self перед точкой. Получилась обычная переменная, и у объекта нет атрибута.
Запомнить
self — как слово «я». Объект говорит о себе: моё имя, мой возраст.
Частые ошибки новичков на этой теме
Кажется: Класс и объект — одно и то же
На самом деле: Класс — чертёж, объект — сделанная по нему вещь. Меняем нужный объект.
Кажется: Self можно не писать
На самом деле: Методу первым параметром всегда приходит сам объект — self.
Тема из урока 9.2 «Свой класс» курса PythonAZ.