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

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

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

Для обратной связи: @proglibrary_feeedback_bot
Download Telegram
Чем отличаются методы __str__() от __repr__() в Python и когда их принято использовать?

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


Библиотека собеса по Python
4👍4
Объясни, как 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
👍2
Как вычислить среднее значение, медиану, моду, дисперсию, стандартное отклонение и различные квантильные диапазоны в Pandas?

✔️ DataFrame.mean(): среднее
✔️ DataFrame.median(): медиана
✔️ DataFrame.mode(): мода
✔️ DataFrame.var(): дисперсия
✔️ DataFrame.std(): стандартное отклонение
✔️ DataFrame.quantile(): для расчета квантильного диапазона, используя значение диапазона в качестве параметра


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