Лучший курс по Python 10: ==

preview_player
Показать описание
Лучший курс по питону: 10
Или "обзор исходников CPython с CPython core разработчиком".

Тема: сравнения

- Разница между == и is в Python
- Как работают сравнения в Python? ==, != и другие
- Зачем нужен NotImplemented в Python и в сравнениях?
- Стандартные реализации `__eq__` и `__ne__`
- SupportsRichComparison и другая типизация в _typeshed
- Разница сравнений в python2 и python3
- AST сравнений: `ast.Compare`
- Байткод сравнений: `COMPARE_OP` и `IS_OP`
- Как работает `id`?
- Выполнение и специализация байткода `COMPARE_OP_INT`, `COMPARE_OP_STR`, `COMPARE_OP_FLOAT`
- Конвертация значений сравнений в `bool`
- `PyObject_RichCompare` и слот `tp_richcompare`
- Стандартная реализация `object.__lt__`, `object.__gt__` и других на C

00:00 Вступление
00:28 Junior
16:39 Middle
27:46 Senior
42:47 Завершение

Полезные ссылки:

Рекомендации по теме
Комментарии
Автор

Спасибо за курс. реально интересные видео

denisprokhorov
Автор

Спасибо огромное, автору. Уникальный контент, изучал работу интерпретатора питона по книге Энтони Шоу, но там ограниченная информация, долго искал какого-то умного человека, кто объяснит подробно, что происходит под капотом. Автор, не останавливайся, продолжай делиться знаниями! Хотелось бы узнать в будущем, как работают декораторы, дескрипторы и тд. Спасибо!

НиколайДубовой-ъу
Автор

Никита, очень полезная лекция про сравнения большое спасибо. Пару просьб на будущее развитие:
1. Хочеться больше понимания об Python Style Guide и о техниках как ему лучше всего соответствовать
2. Про слоты вообще не понимаю, что за концепция такая...

Заранее благодарен,
С Уважением,
Макс.

MaxZaikin
Автор

Капец он умный, такого core контента наверное во всем интернете не найдешь

andrep
Автор

pov: прошли только базовые типы и операторы в питоне

Страшно что будет дальше...

live-superdulia
Автор

33:42 не совсем понятно для чего все-таки PyObjects_IsTrue
ведь выражение a==b и так всегда будет булевым, для чего его как-то собо "готовить" к использованию в if?

SoulPervert
Автор

26:18 чтобы оператор сравнения возвращал результат метаметода, не приведенный к bool? в начале было, про дсл
Кстати, про то, что некоторые операторы сравнения могут возвращать не bool не знал. ИМХО было бы лучше, если бы and и or тоже могли возвращать что угодно, orm были бы красивее:)

nako_clipped
Автор

Стоило бы объяснить как сравнения работают с учетом наследования.
То, что типы часто игнорируются при сравнении встроенных типов - было как-то походя замечено. ``True == 1 == 1.0 == complex(1)``.

sergeybkirpichev
Автор

не смог найти, где С генерирует разные ID для разных платформ

actr
Автор

В простом питоне в 100 раз больше подводных камней и мусора чем в сложном расте

stan_yolo
Автор

Прикольно, что total_ordering переназначает только обжектовые методы. То есть при наследовании работать не будет без напильника )
```from functools import total_ordering

@total_ordering
class A(int):
def __le__(self):
return True

print(A.__dict__)

{'__module__': '__main__', '__le__': <function A.__le__ at '__dict__': <attribute '__dict__' of 'A' objects>, '__doc__': None}```

mantrida