🧠 Python Under the Hood
Частина 1: Дескриптори та механіка доступу до атрибутів
📅 18.02.26 | 19:00
📡 Live Stream | 2+ години
🎯 Middle+ / Senior / Architects
📌 IT Education HUB
Ви впевнені, що розумієте Python?
Що насправді відбувається, коли ви пишете:
obj.method()
- Звідки береться
self? - Чому
@propertyмає вищий пріоритет, ніж атрибут інстансу? - Чому функція в класі автоматично стає bound method?
- Чому одні атрибути «перемагають» інші?
- Як Python вирішує, що саме повернути?
Більшість розробників використовують дескриптори щодня —
і не усвідомлюють цього.
ORM, property, staticmethod, classmethod, cached_property, __slots__ — усе це побудовано на одному механізмі.
Цей стрім — не про синтаксис.
Це розбір Python Object Model на рівні механіки виконання.
Що буде в 1 частині
1️⃣ Python Object Model без магії
- Як пов’язані
object,type, клас і інстанс __dict__класу та об’єкта- Memory layout об’єкта
- MRO (Method Resolution Order) — що реально відбувається
2️⃣ Повний алгоритм пошуку атрибутів (крок за кроком)
Розберемо реальний порядок доступу:
- Data descriptor
- Instance
__dict__ - Non-data descriptor
- Class
__dict__ - MRO
__getattr__
З live-демонстрацією кожного етапу.
Після цього ви більше ніколи не будете «гадати», чому Python поводиться саме так.
3️⃣ Функція — це дескриптор
- Чому метод — це не просто функція
- Як працює
__get__ - Що таке method binding
- Чому
obj.method≠Class.method
4️⃣ Descriptor Protocol
__get____set____delete__- Data vs Non-data descriptors
- Пріоритети та конфлікти
5️⃣ @property під капотом
- Чому це дескриптор
- Чому він має вищий пріоритет
- Що реально відбувається під час звернення
Формат
- 2+ години глибокого technical deep dive
- UML-схеми
- Live-coding в реальному часі
- Демонстрація механіки, а не слайдів
- Без поверхневого пояснення
Результат після 1 частини
Ви:
- Розумієте повний алгоритм attribute lookup
- Бачите, як Python реалізує binding
- Чітко розумієте роль дескрипторів
- Перестаєте сприймати мову як «магічну»
- Починаєте мислити категоріями object model
⚙️ Python Under the Hood
Частина 2: Дескриптори як інженерний інструмент
📅 19.02.26 | 19:00
📡 Live Stream | 2+ години
🎯 Middle+ / Senior / Architects
Перша частина — механіка.
Друга — інженерія.
Ми переходимо від «як працює» до «як це використовувати правильно».
Дескриптори — це не тема про Python.
Це тема про архітектуру контролю доступу до стану.
Що буде в 2 частині
1️⃣ __set_name__ і правильний дизайн
- Організація внутрішнього стану
- Типові помилки
- Де зберігати дані
- Як не допустити state leakage
2️⃣ Побудова mini-ORM з нуля (live)
Створимо:
BaseFieldIntegerFieldStringField- Централізовану валідацію
- DRY-архітектуру
Після цього ви зрозумієте, як працюють Django ORM, SQLAlchemy та інші системи під капотом.
3️⃣ Lazy Loading і кешування
- Реалізація
cached_property - Відкладене обчислення
- Performance аспекти
- Контроль життєвого циклу даних
4️⃣ __slots__ і memory model
- Як
__slots__реалізовані через дескриптори - Економія пам’яті
- Memory layout інстансу
- Коли це виправдано, а коли — ні
5️⃣ Edge Cases
- Multiple inheritance
- Descriptor overriding
- Weak references
- Підводні камені
6️⃣ Descriptor vs Metaclass
- Де проходить межа
- Коли достатньо дескриптора
- Коли потрібна метакласа
- Антипатерни
Формат
- 2+ години live-coding
- Побудова архітектури з нуля
- Розбір production-рівня кейсів
- Аналіз помилок
Результат після 2 частини
Ви:
- Проєктуєте власні дескриптори
- Розумієте архітектуру ORM
- Усвідомлюєте memory model Python
- Чітко розмежовуєте descriptor і metaclass
- Мислите як інженер системного рівня
Чому це важливо
90% матеріалів про дескриптори:
- пояснюють тільки
__get__ - не розглядають object model
- не показують повний алгоритм lookup
- не дають інженерного застосування
Це буде фундаментальний, системний розбір без спрощень.
📌 Підписуйтеся на YouTube:
www.youtube.com/@IT_education_HUB
І вмикайте нагадування — це буде серія «Python Under the Hood», яка змінить ваше розуміння мови.
📌 Підписуйтеся в ТГ:t.me/IT_education_HUB
1 коментар
Додати коментар Підписатись на коментаріВідписатись від коментарів