ЛКПП 4: bool

Sdílet
Vložit
  • čas přidán 20. 05. 2024
  • Лучший курс по питону: 4
    Или "обзор исходников CPython с CPython core разработчиком".
    Тема: bool в Python
    - Магические методы `__bool__` и `__len__`
    - Почему нужно использовать is, а не ==, для сравнения объектов с True и False?
    - Почему bool ведет себя как int?
    - Ключевые слова and, or, и not
    - Ленивые условия
    - Использование all и any
    - PyBool CAPI
    - Оптимизация байткода в CPython
    - FlowGraph
    Билеты на конферецию MoscowPython Day: bit.ly/phd-mpp
    00:00 Вступление
    01:13 Junior
    05:33 Middle
    10:11 Senior
    23:21 Завершение
    Полезные ссылки:
    - Все материалы: github.com/sobolevn/the-best-...
    - Мой GitHub: github.com/sobolevn
    - Поддержать: boosty.to/sobolevn
    - Сообщество: discord.python.ru
    #python #pythonprogramming #pythontutorial #python3

Komentáře • 20

  • @sobolevn
    @sobolevn  Před 18 dny +14

    Звук починил! Павел Пшеничный из компании Ядро, спасибо тебе! Единственная компания из многих десятков, кто откликнулся на призыв помочь со звуком. И вышло - просто кайф!

  • @zaharvarfolomeev1536
    @zaharvarfolomeev1536 Před 18 dny +8

    Мне кажется очень важно под каждым видео курса писать теплые слова благодарности.
    Пламенное спасибо за курс такого качества! Речь, последовательность инфы, объяснение и примеры, все супер.

  • @user-pf6of1lz5m
    @user-pf6of1lz5m Před 15 dny

    Очень нравится. Жду следующий урок

  • @Lelouch-
    @Lelouch- Před 18 dny +3

    Супер интересно, кайф, спасибо за курс

  • @slubovsky
    @slubovsky Před 17 dny

    Лучший курс!

  • @naivrick9782
    @naivrick9782 Před 17 dny

    Спасибо 😊

  • @DAJakaRedAries
    @DAJakaRedAries Před 18 dny +1

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

  • @stensmitt
    @stensmitt Před 18 dny +1

    Привет! Спасибо за урок)

  • @vladimir2139
    @vladimir2139 Před 13 dny

    Пишу в основном на Java, но бывает и на Python(ничего особенного, просто иногда bash-скрипты вырастают, и ради читаемости проще их переписать на чем-то более поддерживаемом). Спасибо за курс!

    • @sobolevn
      @sobolevn  Před 13 dny +1

      У меня как-то раз bash скрипт вырос в github.com/sobolevn/git-secret 😱

  • @linkernick5379
    @linkernick5379 Před 16 dny

    То, что bool в Питоне унаследован от int это довольно странная фигня, потому что наследование на неизменяемых типах делает противоречивым операцию сравнения и другие инварианты (Почему True == 1, ведь они разных типов?). Поэтому в Scala, например, наследование на case-классах запрещено.

  • @vandris_
    @vandris_ Před 18 dny

    Доброго времени суток! Спасибо за курс! А будет ли в рамках курса как-то освещаться работа сборщика мусора и счетчика ссылок?

    • @sobolevn
      @sobolevn  Před 18 dny +2

      конечно, когда дойдем до объектов

  • @user-zl5sp9yh1n
    @user-zl5sp9yh1n Před 18 dny

    Только сегодня посмотрел интересный ролик. Скажите, а почему тут ( print(1 or None and print("hello world")) ) второй print не выполнится? Точнее почему - ясно, но оно получается не бьется а тем что вы рассказывали про АСТ?

    • @sobolevn
      @sobolevn  Před 18 dny +1

      Почему не выполнится, давайте разбираться. Смотрите, вот такой будет ast: gist.github.com/sobolevn/2b1e1c28e127feffb01bf435f37eb6e3
      Далее, смотрим байткод: gist.github.com/sobolevn/2b1e1c28e127feffb01bf435f37eb6e3#file-boolop_dis-py
      В итоге получаем:
      ```
      >>> None and print("hello world")
      >>> 1 or None
      1
      ```
      Надеюсь, так понятно :)
      Ленивые штуки - всегда неочевидные!

  • @grigorytrofimov6513
    @grigorytrofimov6513 Před 15 dny

    assert all([]) is True
    я думал это просто потому, что под капотом сначала делают flag=False, а потом ищут хотя бы одно исключение
    но я не думал, что это как то связано с теорией категорий)

    • @sobolevn
      @sobolevn  Před 15 dny

      А тут такое! github.com/sobolevn/the-best-python-course/blob/8331d0f6534199159aab18bd8ce8e32e80094bd1/homeworks/4-bool.md#L4

  • @user-mobilnik
    @user-mobilnik Před 12 dny

    Условно бесплатно за 1000 рублей

  • @user-mobilnik
    @user-mobilnik Před 12 dny

    Специальная функция для bool - not()

    • @sobolevn
      @sobolevn  Před 12 dny

      Нет такой функции :)
      Есть `not ()` = `not tuple()`
      >>> import ast
      >>> ast.dump(ast.parse('not()'))
      'Module(body=[Expr(value=UnaryOp(op=Not(), operand=Tuple(elts=[], ctx=Load())))], type_ignores=[])'