Библиотека собеса по Python | вопросы с собеседований
6.03K subscribers
670 photos
14 videos
520 links
Вопросы с собеседований по Python и ответы на них.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/6587aafa

Для обратной связи: @proglibrary_feeedback_bot
Download Telegram
🚀 Курс «ИИ-агенты для DS-специалистов» уже стартовал

Первый вебинар успешно прошёл, участники уже начали разбираться, как использовать ИИ-агентов в реальных проектах.

Но всё самое интересное только начинается!

🔥 Впереди 4 мощных занятия — с практикой, инсайтами и разбором кейсов от экспертов.

💸 Сейчас действует специальная цена → 69.000 ₽ вместо 79.000 ₽.

Осталось всего 4 места.

Не упустите шанс прокачаться в том, что будет определять будущее индустрии.

👉 Забронировать место на курсе
Чем отличаются методы __str__() от __repr__() в Python и когда их принято использовать?

Методы __str__() и __repr__() в Python имеют разные цели и используются в различных контекстах.
Метод __str__() предназначен для создания понятного и удобного представления объекта, которое будет полезно конечному пользователю. В то время как __repr__() создает более формальное строковое представление, которое должно быть точным и однозначным, что позволяет воссоздать объект.
__repr__() часто используется в процессе отладки и разработки, так как его вывод должен быть максимально информативным. В отличие от него, __str__() ориентирован на предоставление более дружелюбного и менее детализированного представления объекта. Если метод __str__() не реализован, Python автоматически использует __repr__() в качестве альтернативы.


Библиотека собеса по Python
4👍3
Объясни, как Django управляет транзакциями: autocommit, transaction.atomic() (savepoint’ы и «broken» состояние), ATOMIC_REQUESTS, когда нужен select_for_update(), и что учитывать с CONN_MAX_AGE/PgBouncer.

По умолчанию autocommit: каждый ORM-запрос, меняющий БД, — своя транзакция. atomic() начинает транзакцию (или создаёт savepoint при вложенности); исключение помечает блок как broken → откат до ближайшего savepoint/транзакции; при выходе — commit или rollback. ATOMIC_REQUESTS=True автоматически оборачивает view, но может растягивать транзакции (долгие I/O, внешние вызовы) — применять выборочно. select_for_update() требует активной транзакции (atomic()), в Postgres можно nowait/skip_locked для борьбы с блокировками. Изоляция — та, что у БД (обычно READ COMMITTED). Соединения: CONN_MAX_AGE удерживает их открытыми; в проде обычно PgBouncer (session/transaction mode), следи за совместимостью с server-side курсорами и длительными транзакциями.

Библиотека собеса по Python