#2. Методы классов. Параметр self | Объектно-ориентированное программирование Python

Поділитися
Вставка
  • Опубліковано 27 лис 2024

КОМЕНТАРІ • 238

  • @annashcherbakova1202
    @annashcherbakova1202 2 роки тому +249

    Вы - первый человек, который смог понятно объяснить, что такое self!

    • @amalshakov
      @amalshakov Рік тому +14

      Подтверждаю, как человек, оканчивающий курс Яндекс.Практикума.

    • @EvvA
      @EvvA Рік тому

      @@amalshakov я сейчас там учусь и все равно не понимал, нахрен мне нужен "self"!

    • @musicforyou1380
      @musicforyou1380 Рік тому +1

      согласен

    • @Watcherfromfar
      @Watcherfromfar 10 місяців тому +3

      Присоединяюсь. И очень благодарю. На многих курсах уроки и объяснения составляют люди, для которых все это очевидно. И им сложно объяснить так, чтобы мы, новички, все поняли. Помимо понимания self я для себя еще важное получил.
      Наконец уложилось в голове, что такое Атрибуты. А то никто не акцентирует на этом внимания. И я долго не мог понять, постоянно путал их то со свойствами, то с параметрами. А оказалось, что атрибуты - это все что входит в класс, т.е. методы и свойства - это все атрибуты класса.
      А параметры - это то, что указывают в скобках при вызове функции. Функцию можно вызвать как с параметром так и без. В общем, уложилось наконец. Спасибо вам!

    • @Alpha-su8ti
      @Alpha-su8ti 9 місяців тому +2

      self показывает что какая-то уйня относится к конкретно этому экземпляру класса, что тут непонятного)))

  • @tatikorovkina
    @tatikorovkina 3 дні тому +1

    Я программирую на Питоне уже 6 лет. Каждый раз при подготовке к собесам повторяю основы и видела многое. Но такого подробного и глубокого объяснения не встречала ни разу! Думала, включу плейлист на 2х на фоне, пока готовлю. В итоге сижу и смотрю с интересом уже третье видео. Даже пару новых деталей для себя почерпнула. Спасибо, Сергей)

  • @jeyhunaze7628
    @jeyhunaze7628 2 роки тому +79

    Вы реально тот единственный человек, который смог объяснить, что такое self. Спасибо большое!!!!

    • @pwufora
      @pwufora 2 роки тому +6

      return и self были наверное всегда сложнейшими для новичком

    • @yuliyaparamonova5596
      @yuliyaparamonova5596 2 роки тому +6

      @@pwufora На счет ретерн не согласен, а вот наследование...

    • @pwufora
      @pwufora 2 роки тому +3

      @@yuliyaparamonova5596 мне было сложно осознать как он работает из-за незнания механики программирования, а также this по началу, потому что они запрограммированиы так, чтобы мы могли сразу их исползовать, неалгоритмично. Вообще все встроенные методы сложны, потому что ты их не писал и не знаешь как они работают.

  • @olegafrikyan5859
    @olegafrikyan5859 Місяць тому +3

    Спасибо огромное за то, что Вы делаете!
    Любой Ваш урок - это всегда 100% гарантия великолепного объяснения и абсолютно полного понимания!!!

  • @djpatronrussia
    @djpatronrussia 2 роки тому +21

    Я думал, что понимание ООП будет очень сложным.... Уже отчаялся... но тут наткнулся на Ваши видео уроки! И не устану писать Вам. Большое Спасибо! За Ваш бесценный труд!

  • @anndreiko
    @anndreiko 9 місяців тому +4

    Лучшая серия уроков по ООП. Автор, спасибо вам за эти прекрасные ролики. Теперь всё стало по полочкам

  • @freeforrussia
    @freeforrussia 3 роки тому +72

    Сергей! Огромное спасибо за то время, которое вы тратите на наше просвещение! Спасибо с поклоном до земли!

  • @АрслановРуслан-о6ф
    @АрслановРуслан-о6ф 2 роки тому +15

    Первое нормальное объяснение параметра self, которое нашел. Где до этого не читал, как-то мутно все объясняли, и не понятно, когда его ставить, когда нет. Спасибо!

  • @Vaks_4
    @Vaks_4 3 роки тому +56

    Вы просто спасатель для новичков
    Огромное вам спасибо за такой огромный вклад в наше будущее !

  • @vld7395
    @vld7395 2 роки тому +9

    Голос как будто сказку рассказываете, приятный очень

  • @ЭмметтБраун-у3т
    @ЭмметтБраун-у3т 3 місяці тому +2

    Отличный урок , когда я был новичком год назад начал изучать python - для меня это казалось сложным и невозможным,я считал , что просто плохо объясняют,раз я непонимаю,но я снова вернулся к данным урокам,мне все понятно,все здесь объясняется до мелочей и понятно,спасибо!

  • @olegkravchenko3738
    @olegkravchenko3738 9 місяців тому +2

    Поддерживаю всех кто Вас хвалит. Много информации по классам и непосредственно self прочитал, до того как Вам удалось объяснить его функционирование.

  • @kotsba
    @kotsba 2 роки тому +39

    Изучал основы Python в рамках курса SkillBox и никак не мог до конца понять, как работает self и зачем ее везде пихать в описании класса. Очень смутное понимание было, что она ссылается куда-то, но не догонял, что это ссылка на объект класса, который мы создадим в будущем. Спасибо за подробное разжевывание! Как устроюсь на работу по новому профилю, буду регулярно донатить этому каналу)))

    • @firston5360
      @firston5360 Рік тому +3

      *ссылка на экземпляр класса

    • @fresh_wind87
      @fresh_wind87 Рік тому +4

      @@firston5360 это одно и тоже умник - душнила

    • @NoName126-p1b
      @NoName126-p1b Рік тому +1

      @@fresh_wind87 Чел это две разные вещи, не говори если не знаешь правды

    • @JohnnyBGoode-fc8gw
      @JohnnyBGoode-fc8gw Рік тому +4

      @@NoName126-p1b Объект и экземпляр класса это действительно одно и тоже.

    • @ЭдуардАсадов-х7н
      @ЭдуардАсадов-х7н Рік тому

      Устроился на работу?

  • @ВикторПелих-я6ш
    @ВикторПелих-я6ш Рік тому +9

    Очень хорошо и доступно всё "разжёвано", но как же трудно это проглотить!

  • @nikolayagababyan5299
    @nikolayagababyan5299 Рік тому +5

    Сергей, Вы делаете большое дело, спасибо Вам за это! Платные курсы оказались в разы менее информативные, чем Ваши лекции. Спасибо Вам большое за Вашу работу!

  • @ИринаЭнтелис
    @ИринаЭнтелис Рік тому +1

    Спасибо Вам ! В момент просмотра Ваших видео в голове случаются просветления. Никто лучше Вас не объяснил, что такое self.

  • @artemvolosnov7510
    @artemvolosnov7510 2 роки тому +6

    Просто пушка контент! Без воды, по существу, не упуская важных деталей и сути, редко пишу комменты, но за такое точно лайк)

  • @АлександрКоваленко-р6р

    Я впервые услышал такое чёткое и понятное объяснение. Огромное спасибо

  • @edwardsnowden9093
    @edwardsnowden9093 Рік тому +1

    Я уже писал маленькие скрипты и программы, но только с вами начал постигать более полное понимание того, как оно работает внутри.
    Большое спасибо )

  • @ИгорьИванов-т3р7х

    Спасибо, я лучше понял что такое self. До этого я из платного курса Пайтон-разработчик узнал что self это ссылка на самого себя, и не понимал что это значит. Взял ваш курс закрыть пробелы в изучении.

  • @Nfix106
    @Nfix106 8 місяців тому +1

    Идеально - тема с self раскрыта спасибо)!
    Я конечно знал про self, но соглашусь со многими, в большинстве мануалов по ооп на Python, тема с self не раскрывается, обычно говорят, что пишите ее и все будет гуд.😊

  • @soul-snatcher225
    @soul-snatcher225 2 роки тому +2

    только реально понимающий тему человек, может спокойно и доходчиво объяснить материал. спасибо, теперь я наконец понял зачем нужен был self :)

  • @РусланХамзин-э2о

    Крайне редко пишу комментарии, но тут не могу не сказать. Просмотрев несколько видео по классам и методам классов, только с помощью этого видео смог наконец понять, для чего нужен self, и как вообще работают методы класса! Спасибо!

  • @maximsalnikov174
    @maximsalnikov174 7 місяців тому +1

    Как же Вы понятно объясняете! Успехов и здоровья!

  • @gaben_aTan
    @gaben_aTan Рік тому +1

    Наконец-то я понял зачем нужен self. В нескольких книгах по питону прочел про self так до конца и не понял. У вас отлично получаются видеоуроки. Спасибо!

  • @aanistratenko
    @aanistratenko Рік тому +1

    Сегодня перечитал немало статей и не мог зачем и откуда self!
    Вы четко и наглядно объяснили!
    Спасибо!

  • @inatalya
    @inatalya 5 місяців тому +1

    Боже! Сергей балакирев, вы такой крутой! Всех вам благ! Спасибо за такой классный контент!

  • @ИринаПотёмкина-ш1л
    @ИринаПотёмкина-ш1л 2 роки тому +4

    Ничего себе!!! Спасибо огромное. Теперь, наконец-то с селф всё ясно!!!❤❤❤

  • @Baguvix30
    @Baguvix30 Рік тому +11

    Сергей, тут уже написанно миллион комментов, но я не могу не сказать!
    Огромнейшее вам спасибо! Я сейчас прохожу платные курсы, до этого было более-менее понятно, я подкреплял всё из других источников тоже, но вот на ООП просто застопорился. Я никак не мог понять, что такое self, для чего он нужен, откуда это всё идет и вот я нашел ваше видео! Я БУКВАЛЬНО ПРОЗРЕЛ! ТЕПЕРЬ Я ПОНИМАЮ, ЧТО ДЕЛАЮ, А НЕ ПИШУ МЕХАНИЧЕСКИ! Я чувствовал себя очень подавленно от того, что никак не мог понять и мотивация ушла в ноль просто! Вы вернули мне веру в себя и я понял, что я не так уж и туп, просто мне плохо объяснили! Спасибо огромное, вы прирожденый учитель, который действительно понимает, как надо работать с учащимися!!

  • @ФайзДж
    @ФайзДж 11 місяців тому +1

    Огромное спасибо за труд! По голосу понятно что добрый человек

    • @КарельскаяАрктика
      @КарельскаяАрктика 11 місяців тому

      я с трудом слушаю. скорость 1,25 поставить, то еще более менее. Дикция ужасная. Еще нет четкой терминологии. То параметр, то аргумент, то атрибут, то свойство. Я прочитал несколько книг чтобы понять что это примерно одно и тоже. Еще есть слово поле у свойства. Надо сразу объяснять терминологию, а не скакать с одного слова на другое.

  • @teacherit5840
    @teacherit5840 2 роки тому +1

    Сначала лайк, потом смотрю! Всем советую , не прогадаете

  • @andredru4278
    @andredru4278 9 місяців тому +2

    Спасибо. Отлично. Идем дальше.

  • @eklatov
    @eklatov 2 роки тому +2

    Спасибо большое! Раньше пробовал учить ООП, но ничего не понял и забросил, а сейчас все понял. Спасибо вам огромное!!!

  • @dedded6840
    @dedded6840 2 роки тому +2

    Ваш канал самая настоящая находка)

  • @sinsmith9687
    @sinsmith9687 2 роки тому +1

    Я в неописуемом восторге. Как все легко я понятно Вы объясняете))) Всех благ

  • @elenagavrilova3109
    @elenagavrilova3109 11 місяців тому +1

    уже на 41 секунде поставила лайк! спасибо Вам огромное и крепкого здоровья!

  • @romanp1521
    @romanp1521 2 роки тому +67

    Старые уроки были хороши, но новые это уже другой уровень обьяснений. Для неновичка кажется что автор пытается обьяснить очевидные вещи. Но для тех кто начинает изучать эти моменты могут стать камнем преткновения на несколько часов или даже дней. Многие мануалы говорят то self нужен и все, просто запомните это, в лучшем случае показывют что с ним все работает а без него нет. А потом натыкаешсь на разные куски кода в которых self нет, и пытаешся понять когда же он нужен а когда нет.

  • @vyacheslavmancurov6101
    @vyacheslavmancurov6101 Рік тому +1

    Спасибо Вам, ГУРУ питона!!! Вы единственный кто нормально объясняет эту тему!

    • @trevizez
      @trevizez Рік тому +1

      Чувствую себя тупым, потому что я все равно не до конца понял 😂

  • @empty9228
    @empty9228 2 роки тому +1

    Сергей, спасибо большое за урок! Отличное объяснение, как работает "self" и зачем он нужен!

  • @pavelmiroshnichenko9630
    @pavelmiroshnichenko9630 2 роки тому +1

    думал что не новичек я . смотрю ваши уроки и понимаю, что все таки новичек)) очень круто, по делу, доступно, ненавязчиво, топ контент!👍

  • @ИгорьГелахов-н1у

    Спасибо. Доступное изложение, и одновременно все корректно в части объяснения функционирования

  • @adityavats8033
    @adityavats8033 Рік тому +1

    Thanks a lot! Great Job. Keep It Up. I am new to python but the way you explained all the details of OOP in Python is terrific. Thanks again for sharing your knowledge and uploading this video.

  • @status_dev
    @status_dev Рік тому

    спасибо вам большое , Вы - первый человек, который смог понятно объяснить, что такое self!

  • @valeradyomin287
    @valeradyomin287 Рік тому +2

    Спасибо за труды. Очень хорошо подаёте материал.

  • @symbiozzzzzzzzz
    @symbiozzzzzzzzz 2 роки тому +2

    Спасибо, очень качественное изложение. Даже на 2х скорости материал отлично впитывается)

  • @AcelineÉtoile
    @AcelineÉtoile 10 місяців тому +1

    Тупа ЛУУУУУЧШИЙ братик. Очень хорошие уроки. Сначала думал обычный гундос, но очень хорошо и доходчиво обьясняешь вообще без воды

  • @ВалерияМалышева-ь1в

    Согласна с другими комментариями - очень понятно и круто объяснили про self🙂

  • @Хакохо
    @Хакохо 10 місяців тому +6

    После таких классных уроков даже мой кот Васька объяснит Шарику на улице что такое ООП .

  • @golden_horde
    @golden_horde 2 роки тому +3

    Спасибо тебе большое, очень круто объяснил. Для меня многие вещи стали понятными, я прям прозрел.

  • @ДмитрийБорисюк-з6м
    @ДмитрийБорисюк-з6м 10 місяців тому +1

    Все очень доходчиво и подробно рассказано... 👍

  • @АндрейА-ю3б
    @АндрейА-ю3б 2 роки тому +1

    Гений среди нас! спасибо за ваш труд!

  • @kenn1on
    @kenn1on 2 роки тому +3

    Топ курс, всё понятно. Спасибо большое!

  • @alucardv8551
    @alucardv8551 2 роки тому +5

    8:49 - Вот именно для этого и используется параметр self: чтобы мы могли работать с локальными атрибутами **конкретного** экземпляра класса.

  • @MsGleaming
    @MsGleaming 8 місяців тому

    Я вас люблю. Единственно понятное объяснение!🥰

  • @ИсмоилОдинаев-й2я

    Здравствуйте, уважаемый Сергей и аудитория!
    Прекрасное объяснение.
    После этого урока сложилось представление, что классы это ящик с данными и методами. Возьми (экземпляр класса) какие нужны свойства и с помощью методов оперируй этими свойствами.
    Вопросы:
    1) На сколько это представление правильное в контексте урока?
    2) Можно ли в самом классе запустить методы с помощью использования его собственных свойств, на сколько это будет правильно?

    • @selfedu_rus
      @selfedu_rus  Рік тому +1

      как первое понимание, возможно, но лучше задайте этот вопрос в телеграм-канал (ссылка под видео) и вам там много чего еще интересного расскажут ))

  • @АлександрЛобанов-о2у

    Спасибо, не спеша, подробно, с расстановкой. Спасибо!

  • @sofiipochta
    @sofiipochta 4 місяці тому +2

    Спасибо, посмотрела!

  • @snamiinteresno
    @snamiinteresno 2 роки тому +1

    Супер, спасибо!

  • @crazzyhorn9636
    @crazzyhorn9636 Рік тому +2

    Учитель от Бога!!!

  • @VORTEX-ik9jl
    @VORTEX-ik9jl 11 місяців тому +1

    Спасибо вам огромное, наконец понял эту тему!

  • @alexeyxopyc2471
    @alexeyxopyc2471 2 роки тому +1

    Благодарю! :) и слушать приятно и объясняете доходчиво)

  • @WasWollenWirDrinken
    @WasWollenWirDrinken 8 місяців тому +1

    просто легенда, спасибо вам

  • @kZiFo79
    @kZiFo79 Рік тому +1

    Наконец-то я понял, что такое селф, спасибо!

  • @86Blind
    @86Blind 2 роки тому +1

    Самое лучшие объяснение. Наконец-то я понял!!!!))))

  • @igorratnik2357
    @igorratnik2357 Рік тому +1

    Спасибо Сергей!. Так же, что уроки переложены в текстовом виде!

  • @citricmint6180
    @citricmint6180 2 роки тому +2

    Спасибо за доступное изложение материала!)

  • @СергейДмитриевич-р7ч

    Страшно даже представить величину мозга тех, кто это все придумал...

    • @anyreU
      @anyreU Рік тому +2

      Это все благодаря лени... А так бы процедурно делали

    • @moduletechsm-t500-px9jo
      @moduletechsm-t500-px9jo 8 місяців тому

      @@anyreU Ты еще скажи что библиотеки и фреймворки от лени

    • @eng9507
      @eng9507 7 місяців тому +2

      ​@@moduletechsm-t500-px9jo именно

    • @moduletechsm-t500-px9jo
      @moduletechsm-t500-px9jo 7 місяців тому

      @@eng9507 Нет, это использование чужого опыта, экономия времени, улучшение качества своего проекта. НЕ использовать это все, это просто тупость.

    • @moduletechsm-t500-px9jo
      @moduletechsm-t500-px9jo 6 місяців тому

      @@textreanimator Мне кажется, если мне дать 100 лет, я с 0 сопромат не изобрету, вообще никак.

  • @vb52ru
    @vb52ru 3 роки тому +7

    Спасибо

  • @SELYAVINNICK
    @SELYAVINNICK 2 роки тому +2

    Классные ролики. Автор так держать. Попробую начать познания в ооп по роликам автора

  • @AdmiralUshakovvv
    @AdmiralUshakovvv 3 роки тому +4

    да есть же)))
    ломка прошла чуть чуть)

  • @orthodox-chanel
    @orthodox-chanel Рік тому +3

    для закрепления пришла в голову мысль написать функцию которая выводит все объекты в классе
    class Point:
    color = 'red'
    circle = 2
    def set_coords(self,x,y):
    self.x = x
    self.y = y
    def get_coords(self):
    return (self.x, self.y)
    def all_args(self):
    dct = dict()
    if hasattr(self, "color") == True:
    dct['color'] = getattr(self,'color')
    if hasattr(self, "circle") == True:
    dct['circle'] = getattr(self,'circle')
    if hasattr(self, "x") == True:
    dct['x'] = getattr(self, 'x')
    if hasattr(self, "y") == True:
    dct['y'] = getattr(self,'y')
    return dct
    a = Point()
    a.set_coords(10,20)
    b = Point()
    b.set_coords(15,1)
    print(Point.all_args(Point))
    print(a.all_args())
    print(b.all_args())

    • @orthodox-chanel
      @orthodox-chanel Рік тому +1

      или в одну строку пишем чтоб было по правилам python
      def all_args(self):
      return dict((str(item), getattr(self, item) if hasattr(self, str(item)) else None) for item in ['color', 'circle', 'x','y'])

  • @МаксОгн
    @МаксОгн Рік тому +1

    Я попробовал это и заметил, что получить отдельные данные с self нельзя. Для этого нужно создавать переменные в экземпляре класса. Спасибо, разобрался)

  • @ИванИванов-ж1г1я
    @ИванИванов-ж1г1я 2 роки тому +1

    Отличный урок! Спасибо Вам👍

  • @ibragim_on
    @ibragim_on Рік тому +1

    Идеальное объяснение

  • @ВасяБелай
    @ВасяБелай Рік тому +1

    Спасибо!
    Очень круто!

  • @Vlad1998996
    @Vlad1998996 3 роки тому +2

    ЛАЙК за ролик!

  • @sofiya41.
    @sofiya41. 8 місяців тому +1

    Спасибо большое ❤❤❤

  • @MykytaStr
    @MykytaStr 2 роки тому +1

    Чел, ты лучший

  • @МОстрогов
    @МОстрогов 2 роки тому +1

    Спасибо за уроки!

  • @adammagomedov9822
    @adammagomedov9822 Рік тому

    Шикарно спасибо огромное на все проблемы ответили

  • @Kivik_official
    @Kivik_official Рік тому +2

    СПАСИБО!!!!!!!!!!!!!!!!!!!!!!!!!

  • @HeyArtem
    @HeyArtem 2 роки тому +1

    Спасибо за урок!

  • @ilmiriliasov2521
    @ilmiriliasov2521 Рік тому

    Очень круто объясняете, спасибо Большое)

  • @Sunshine-e9p
    @Sunshine-e9p 3 місяці тому +1

    Смотрела 2 ролика, читала сайты так и не поняла про этот метод. Ща гляну видосик, может прояснится

  • @terezabisharyan5463
    @terezabisharyan5463 Рік тому +1

    Спасибо Вам большое

  • @qwertymegaforce9088
    @qwertymegaforce9088 2 роки тому +1

    Отличный урок😊😊

  • @13_chasov_nochi
    @13_chasov_nochi 2 роки тому +1

    Огромное спасибо , мне стало намного понятней

  • @albertgrayce01
    @albertgrayce01 6 місяців тому +1

    классно рассказываете, но так быстро не успеваю печать😁

  • @DmitryAM-ok2kn
    @DmitryAM-ok2kn 27 днів тому +1

    Лучший 🎉

  • @jaksonmillka
    @jaksonmillka 2 місяці тому +1

    Урок #2 = Пройден
    Нечего нового не узнал, так как до этого уже имел опыт создавать проекты по классам :)

  • @vlad_vidan
    @vlad_vidan 2 роки тому

    Простой лучший , спасибо)

  • @svetlana9436
    @svetlana9436 2 роки тому

    Чудесно , наконец поняла ❤️

  • @Davidianable
    @Davidianable 6 місяців тому +1

    Добрый день!
    Спасибо за ваши ролики. У меня предложение на будущее. Пожалуйста, в начале курса, для тупых как я, объясняйте зачем все это нужно глобально. Условно говоря, "мы хотим сделать программу, которая рисует графики функций, для этого нам надо ООП". То есть конкретный пример. Ибо я вот начал смотреть этот цикл, везде сказано что при изучении программирования его обязательно надо знать, но ЗАЧЕМ - никто не объясняет. Поэтому сидишь, и не понимаешь что делаешь - глобально. Ролик понятен, а зачем я это изучаю и вникаю - нет.

  • @mal1n778
    @mal1n778 2 роки тому +5

    Хм) автор до сих пор ставит сердечки, чтож, спасибо Вам за труд, надеюсь в будущем, благодаря Вам я стану хорошим программистом.

    • @mal1n778
      @mal1n778 Рік тому

      @My name is да я о будущем, а так пытаюсь еще учить

  • @СултанКанат-д4м
    @СултанКанат-д4м 2 роки тому +1

    Супер понятный урок СПАСИБО. Еще угарнул с того как читаешь set_coords, сет коооооордс🤣 7:07

    • @Mandarin-h7t
      @Mandarin-h7t Рік тому

      Ха, ты единственный без сердечка

  • @mrrototo761
    @mrrototo761 10 місяців тому +1

    То есть теперь x и y можно использовать в других методах? Мы же их не определили в stop_engine.🤔
    class Car:
    def start_engine(self):
    self.x = x
    self.y = y
    def stop_engine(self):
    return (self.x, self.y)

  • @donfedor007
    @donfedor007 3 роки тому +1

    Как всегда на высоте!!

  • @HeyArtem
    @HeyArtem 2 роки тому +1

    Методы, это такие же атрибуты, просто они ведут не на данные, а на функции . Во всем остальном они схожи с атрибутами, который являются обычными данными. Hello Python! =))

    • @selfedu_rus
      @selfedu_rus  2 роки тому +1

      атрибуты - это ссылки на объекты внутри класса или его экземпляров, они могут ссылаться как на данные, так и на функции

  • @maxichannel9080
    @maxichannel9080 Рік тому +2

    Здравствуйте.
    Подскажете, как сделать такую же консоль (что бы все было цветное и интуитивно понятное в VS Code), если знаете.

  • @Vladimir_Pridumach
    @Vladimir_Pridumach Рік тому +2

    Хоть мне всего 13 лет но вы рассказали всё очень понятно про self