Всем привет! Сегодня 20 февраля, а это означает, что сегодня день появления на свет языка программирования Python🐍. Сегодня Python исполняется 3️⃣1️⃣ год. За эти года, Python стал одним из самых популярных📈 языков программирования в мире. Что же, пожелаю дальнейшего развития и покорения новых высот Python.
🎉32❤6🥰1👏1
🔍 Інтроспекція в Python: як програмі бачити себе зсередини
Інтроспекція — це здатність програми досліджувати свою структуру під час виконання. У Python це зручно реалізовано через вбудовані функції.
Ось декілька корисних прикладів:
Це корисно для:
🔹дебагінгу та аналізу об'єктів
🔹динамічного створення функцій чи класів
🔹розробки IDE, автозаповнення або генерації документації
Інтроспекція — це здатність програми досліджувати свою структуру під час виконання. У Python це зручно реалізовано через вбудовані функції.
Ось декілька корисних прикладів:
type(obj) — визначає тип об’єкта.dir(obj) — показує доступні атрибути та методи.getattr(obj, attr) — отримує значення атрибута.isinstance(obj, class) — перевіряє, чи об'єкт є екземпляром класу.help(obj) — виводить документацію об'єкта.Це корисно для:
🔹дебагінгу та аналізу об'єктів
🔹динамічного створення функцій чи класів
🔹розробки IDE, автозаповнення або генерації документації
Пам’ятайте, що надмірне використання інтроспекції може ускладнити код. Використовуйте її з розумом! 🐍✨
Який у вас зараз рівень як Python Developer?
Anonymous Poll
37%
Ще вчуся / пет-проекти
12%
Junior
39%
Middle
4%
Senior
8%
Team Lead / Architect
👍1🔥1
Python 3.15 додає
Якщо ти хоч раз запускав CLI-утиліту або скрипт і думав "чому воно так довго стартує" - ця фіча для тебе.
Проблема проста. Python при запуску завантажує всі модулі одразу, навіть якщо половина з них потрібна тільки в одному з десяти сценаріїв. Великий проєкт з pandas, numpy і ще купою залежностей - і ти вже чекаєш секунди просто щоб побачити --help.
Раніше це вирішували переносом імпортів всередину функцій. Працює, але код стає брудним і незрозумілим.
Тепер у Python 3.15 є нормальне рішення - ключове слово
Модуль не завантажується поки ти його не використаєш. Перший раз звернувся - тоді й завантажується.
Якщо користувач не запитав звіт - pandas взагалі не торкнувся пам'яті.
Пара моментів які варто знати:
—
—
— помилку в імпорті побачиш не одразу, а коли вперше використаєш модуль
За даними з PEP - CLI-утиліти стартують на 50-70% швидше, великі застосунки споживають на 30-40% менше пам'яті.
Python 3.15 ще не вийшов фінально, але PEP вже прийнятий. Якщо цікаво розібратись детальніше то ось першоджерело: https://peps.python.org/pep-0810
lazy імпорти і це реально корисноЯкщо ти хоч раз запускав CLI-утиліту або скрипт і думав "чому воно так довго стартує" - ця фіча для тебе.
Проблема проста. Python при запуску завантажує всі модулі одразу, навіть якщо половина з них потрібна тільки в одному з десяти сценаріїв. Великий проєкт з pandas, numpy і ще купою залежностей - і ти вже чекаєш секунди просто щоб побачити --help.
Раніше це вирішували переносом імпортів всередину функцій. Працює, але код стає брудним і незрозумілим.
Тепер у Python 3.15 є нормальне рішення - ключове слово
lazy:lazy import pandas
lazy from json import dumps
Модуль не завантажується поки ти його не використаєш. Перший раз звернувся - тоді й завантажується.
lazy import pandas
if user_wants_report:
df = pandas.DataFrame(data) # тільки тут pandas реально завантажиться
Якщо користувач не запитав звіт - pandas взагалі не торкнувся пам'яті.
Пара моментів які варто знати:
—
lazy працює тільки на рівні модуля, не всередині функцій—
from module import * не підтримується— помилку в імпорті побачиш не одразу, а коли вперше використаєш модуль
За даними з PEP - CLI-утиліти стартують на 50-70% швидше, великі застосунки споживають на 30-40% менше пам'яті.
Python 3.15 ще не вийшов фінально, але PEP вже прийнятий. Якщо цікаво розібратись детальніше то ось першоджерело: https://peps.python.org/pep-0810
🔥5