#17. Магический метод __bool__ определения правдивости объектов | ООП Python

Поделиться
HTML-код
  • Опубликовано: 14 дек 2021
  • Курс по Python ООП: stepik.org/a/116336
    Как работает функция bool() применительно к объектам пользовательских классов. Переопределение стандартного ее поведения с помощью магического метода __bool__.
    Инфо-сайт: proproprogs.ru/python_oop
    Telegram-канал: t.me/python_selfedu

Комментарии • 36

  • @user-ni1ty8ul4l
    @user-ni1ty8ul4l 6 месяцев назад +6

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

  • @mormonteg4073
    @mormonteg4073 Год назад +10

    просмотров всё меньше, а значит, отсеиваются слабые) ОГРОМНОЕ спасибо за курс. пишу сейчас, и наверно напишу в конце. Всё понятно, но ощущение, будто я новый язык начал изучать, хотя вроде с питоном на ты общался.

    • @orthodox-chanel
      @orthodox-chanel Год назад +1

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

  • @user-kb1mq6xu6u
    @user-kb1mq6xu6u Год назад +3

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

  • @user-et4if5gs8z
    @user-et4if5gs8z 2 года назад +6

    bool(Balakirev)= True

  • @andredru4278
    @andredru4278 3 месяца назад +1

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

  • @gayratsaidakhmedov5451
    @gayratsaidakhmedov5451 4 месяца назад +1

    спасибо

  • @AitenirZhamakeev
    @AitenirZhamakeev 2 года назад +1

    Спасибо огромное

  • @alexanderjurcenko1614
    @alexanderjurcenko1614 2 года назад +2

    Спасибо за учёбу

  • @karapetsargsyan3193
    @karapetsargsyan3193 7 месяцев назад +1

    Сергей как это интересно

  • @jamjam3337
    @jamjam3337 Год назад +1

    спасибо!👏👍

  • @abrorizzatullaev836
    @abrorizzatullaev836 Год назад +1

    easy to understand

  • @ibrahimoglu
    @ibrahimoglu 2 года назад +2

    👍

  • @user-cb1kz3mv7j
    @user-cb1kz3mv7j 2 месяца назад +1

    Я не совсем понимаю, почему при вызове bool, у нас срабатывает магический метод __len__(). Вот когда мы делаем len(экземплярКласса) - это понятно. Но какая связь между bool и len? Выглядит как - почеши пятку, если нос чешется.

    • @selfedu_rus
      @selfedu_rus  2 месяца назад

      все пустое - false, не пустое - true (из философии Python)

  • @user-hw7uz3zc8w
    @user-hw7uz3zc8w 2 года назад +1

    Здравствуйте. Извините, что не по теме. Не могу решить проблему, возможно вы подскажете куда смотреть... Есть основной скрипт, есть импортируемый в него скрипт. В импортируемом скрипте в функции есть команда изменяющая глобальную переменную в основном скрипте. Но, она не меняет переменную. Не помогает не global в функции, не import, не from import*... есть возможность управлять переменной именно в модуле? Или я что-то не так делаю... Заранее спасибо...

    • @selfedu_rus
      @selfedu_rus  2 года назад +4

      Все должно работать легко и просто. Так как глобальная переменная только для чтения, то просто обращайтесь к ней, учитывая пространство имен (название файла, модуля).

  • @SemyonKalyakulin
    @SemyonKalyakulin Год назад +1

    Если в Point передать такие числа, что в __len__ получается дробное значение, то будет ошибка

  • @TankutTalu
    @TankutTalu Год назад +1

    Добрый день! Чем платный курс "Добрый, добрый Python ООП - обучающий курс от Сергея Балакирева" отличается от этого плейлиста "Объектно-ориентированное программирование (ООП) на Python 3" ?

    • @selfedu_rus
      @selfedu_rus  Год назад +2

      только заданиями практическими, больше ничем

    • @user-cb1kz3mv7j
      @user-cb1kz3mv7j 2 месяца назад

      Без практики, только по видео, вы ничему не научитесь. Только ознакомитесь. А потом успешно забудете, пока в работе не встретится.. А вот самостоятельно применять не сможете.

  • @orthodox-chanel
    @orthodox-chanel Год назад +1

    а зачем это все нужно? не легче ли прописать в самом класе метод|функцию которая делает те же самые вычисления и использовать этот метод при необходимости?

    • @selfedu_rus
      @selfedu_rus  Год назад +1

      так удобнее, например, использовать непосредственно в условных операторах

  • @LOGOSTT
    @LOGOSTT 2 года назад +2

    0:37 "для _пустых_ данных"? - четыре раза прослушал на пониженной скорости и сомневаюсь, что правильно расслышал слово _пустых_ .
    Это именно так называется для числовых значений?

    • @selfedu_rus
      @selfedu_rus  2 года назад +1

      да, это жаргон такой, 0 - пустое, не 0 - не пустое

    • @LOGOSTT
      @LOGOSTT 2 года назад

      @@selfedu_rus просто я никогда так не называю нулевое значение переменной и это меня напрягло. Интересно узнать, насколько распространён такой "жаргон" для числовых переменных.
      _я не работаю в команде программистов, поэтому не знаком с этим_

    • @sladge17
      @sladge17 2 года назад

      None, тоже пустое

  • @user-gf6er4ug6g
    @user-gf6er4ug6g Год назад +1

    Интересно, почему пустой список является ложным, а полный истинным, но метода __bool__ у списков нет?

    • @selfedu_rus
      @selfedu_rus  Год назад

      Все пустое ложное, заполненное - истинно. А как вы определили, что метода __bool__ нет у списков?

    • @user-gf6er4ug6g
      @user-gf6er4ug6g Год назад

      @@selfedu_rus Что за глупый вопрос? Как я определил. Да очень просто
      hasattr([],"__bool__")

    • @serbon3905
      @serbon3905 Год назад

      @@user-gf6er4ug6g так в видео же показано что bool() может работать и через len(), который есть у списков

  • @redgeCorp
    @redgeCorp 11 месяцев назад

    Почему автор всегда при возведении в квадрат пишет в виде x * x, а не x**2? Даже если имя переменной на полстроки.

    • @selfedu_rus
      @selfedu_rus  11 месяцев назад

      x*x, вроде, работает несколько быстрее, чем x**2

  • @xilagos5727
    @xilagos5727 2 года назад +3

    может пора уже переходить на полиморфизм?