Оптимизация SQL-запросов в Django ORM
Сегодня я покажу вам, как оптимизировать SQL-запросы в Django ORM, чтобы ваш код работал быстрее и эффективнее. Если ваш Django-проект начал …
Читать далее →
Structured Concurrency в Python 3.11+ (TaskGroup vs Gather)
Если вы до сих пор используете asyncio.gather() для запуска конкурентных задач, вы, вероятно, теряете контроль над ошиб…
Читать далее →
Списковые включения: for и if в Python
Списковые включения (list comprehensions) могут содержать несколько операторов for и if:
In : [(x, y) for x in range(3) for y in range(3)]
Out: [
(0, 0), (0, 1), (0, 2),
(1, 0), (1, 1), (1, 2),
(2, 0), (2, 1), (2, 2)
]
Можно также добавлять условия if для фильтрации значений:
In : [
(x, y)
for x in range(3)
for y in range(3)
if x != 0
if y != 0
]
Out: [(1, 1), (1, 2), (2, 1), (2, 2)]
Любое выражение с for и if может использовать все переменные, определённые ранее:
In : [
(x, y)
for x in range(3)
for y in range(x + 2)
if x != y
]
Out: [
(0, 1),
(1, 0), (1, 2),
(2, 0), (2, 1), (2, 3)
]
Вы можете комбинировать for и if в любом порядке:
In : [
(x, y)
for x in range(5)
if x % 2
for y in range(x + 2)
if x != y
]
Out: [
(1, 0), (1, 2),
(3, 0), (3, 1), (3, 2), (3, 4)
]
👉@BookPython
Pydantic V2: Забываем root_validator, используем model_validator правильно
Переход на Pydantic V2, это не только ускорение за счет ядра на Rust, но и переосмысление валидации.
Сам…
Читать далее →
🐍 Как улучшить читаемость кода в Python?
Читаемый код - это не роскошь, а необходимость. Если ваш код трудно понять, даже если он работает, это плохой код. Сегодня разберем нескол…
Читать далее →