Тёмный

ЛКПП 4: bool 

Никита Соболев
Подписаться 2,1 тыс.
Просмотров 1,2 тыс.
50% 1

Лучший курс по питону: 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

Опубликовано:

 

17 май 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 20   
@sobolevn
@sobolevn 15 дней назад
Звук починил! Павел Пшеничный из компании Ядро, спасибо тебе! Единственная компания из многих десятков, кто откликнулся на призыв помочь со звуком. И вышло - просто кайф!
@zaharvarfolomeev1536
@zaharvarfolomeev1536 15 дней назад
Мне кажется очень важно под каждым видео курса писать теплые слова благодарности. Пламенное спасибо за курс такого качества! Речь, последовательность инфы, объяснение и примеры, все супер.
@user-pf6of1lz5m
@user-pf6of1lz5m 11 дней назад
Очень нравится. Жду следующий урок
@slubovsky
@slubovsky 13 дней назад
Лучший курс!
@Lelouch-
@Lelouch- 15 дней назад
Супер интересно, кайф, спасибо за курс
@naivrick9782
@naivrick9782 13 дней назад
Спасибо 😊
@DAJakaRedAries
@DAJakaRedAries 14 дней назад
Очень интересно, спасибо за курс!
@stensmitt
@stensmitt 14 дней назад
Привет! Спасибо за урок)
@vladimir2139
@vladimir2139 9 дней назад
Пишу в основном на Java, но бывает и на Python(ничего особенного, просто иногда bash-скрипты вырастают, и ради читаемости проще их переписать на чем-то более поддерживаемом). Спасибо за курс!
@sobolevn
@sobolevn 9 дней назад
У меня как-то раз bash скрипт вырос в github.com/sobolevn/git-secret 😱
@linkernick5379
@linkernick5379 13 дней назад
То, что bool в Питоне унаследован от int это довольно странная фигня, потому что наследование на неизменяемых типах делает противоречивым операцию сравнения и другие инварианты (Почему True == 1, ведь они разных типов?). Поэтому в Scala, например, наследование на case-классах запрещено.
@vandris_
@vandris_ 14 дней назад
Доброго времени суток! Спасибо за курс! А будет ли в рамках курса как-то освещаться работа сборщика мусора и счетчика ссылок?
@sobolevn
@sobolevn 14 дней назад
конечно, когда дойдем до объектов
@user-zl5sp9yh1n
@user-zl5sp9yh1n 14 дней назад
Только сегодня посмотрел интересный ролик. Скажите, а почему тут ( print(1 or None and print("hello world")) ) второй print не выполнится? Точнее почему - ясно, но оно получается не бьется а тем что вы рассказывали про АСТ?
@sobolevn
@sobolevn 14 дней назад
Почему не выполнится, давайте разбираться. Смотрите, вот такой будет 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 12 дней назад
assert all([]) is True я думал это просто потому, что под капотом сначала делают flag=False, а потом ищут хотя бы одно исключение но я не думал, что это как то связано с теорией категорий)
@sobolevn
@sobolevn 12 дней назад
А тут такое! github.com/sobolevn/the-best-python-course/blob/8331d0f6534199159aab18bd8ce8e32e80094bd1/homeworks/4-bool.md#L4
@user-mobilnik
@user-mobilnik 8 дней назад
Условно бесплатно за 1000 рублей
@user-mobilnik
@user-mobilnik 8 дней назад
Специальная функция для bool - not()
@sobolevn
@sobolevn 8 дней назад
Нет такой функции :) Есть `not ()` = `not tuple()` >>> import ast >>> ast.dump(ast.parse('not()')) 'Module(body=[Expr(value=UnaryOp(op=Not(), operand=Tuple(elts=[], ctx=Load())))], type_ignores=[])'
Далее
Redis за 20 минут
23:22
Просмотров 82 тыс.
Code review. 4
1:21:03
Просмотров 1,7 тыс.