zavozНа главную

Направление Python

Вопросы на собеседовании по Python

Голосовые дуэли по Python: модель данных, GIL, asyncio, типизация и другие вопросы с обычного собеседования.

7 вопросов75 секунд на ответ15 рангов
Войти и сыграть

Тренировка и матчи доступны после входа.

Как проходит матч

Ты и соперник отвечаете на одни и те же вопросы.

  1. 01

    Вопрос

    В матче 7 вопросов по Python: язык, модель данных, GIL, asyncio, типизация. Тебе и сопернику достаётся один и тот же вопрос.

  2. 02

    Ответ голосом

    Говоришь вслух, как на живом собеседовании. Таймер идёт у обоих одинаково. Например: в чём разница между __repr__ и __str__. На ответ 75 секунд.

  3. 03

    Разбор от AI

    AI-судья засчитывает смысл, а не формулировку. После раунда видишь ключевые пункты: что засчитано, что упущено. Тут судья ищет, назвал ли ты, что __repr__ нужен разработчику, а __str__ пользователю.

Пример вопроса и разбора

Так выглядят вопрос и разбор в матче. Это пример, не настоящий матч.

Python · Модель данных75 секунд на ответ

Вопрос

В чём разница между методами __repr__ и __str__ у объекта в Python, для чего предназначен каждый из них, и что должен возвращать «хороший» __repr__?

Разбор AI

Засчитано 3 из 4
  • __repr__ предназначен для разработчика — однозначное техническое представление, которое используют REPL, отладчик, вывод объекта внутри контейнеров и логиЗасчитано
  • __str__ предназначен для конечного пользователя — читаемое представление, вызываемое print() и str()Засчитано
  • Если __str__ не определён, Python откатывается на __repr__, но не наоборот — поэтому __repr__ стоит реализовывать всегдаУпущено
  • «Хороший» __repr__ по возможности похож на код, воссоздающий объект, и содержит значения полей, которые отличают экземпляры друг от другаЗасчитано
Эталонный ответ

__repr__ предназначен для разработчика: это однозначное, техническое представление объекта, которое использует REPL, отладчик, вывод объекта внутри контейнеров (список печатает repr каждого элемента) и логирование. Хороший __repr__ по возможности похож на код, который восстанавливает объект, например Point(x=1, y=2), и обязательно включает значения полей, которые помогают отличить один экземпляр от другого. __str__ предназначен для конечного пользователя — это читаемое, «человеческое» представление, которое выводят print() и str(). Если __str__ не определён, Python откатывается на __repr__, поэтому у любого класса стоит хотя бы реализовать __repr__; обратное не работает — repr() никогда не вызывает __str__. Ключевое правило: __repr__ должен быть однозначным и полезным для отладки, а не «красивым» — лучше избыточная информация, чем потерянный контекст при разборе продовой ошибки в логах.

Что спрашивают

Самые частые темы в вопросах по Python. Вопросы простые, такие, как на обычном собеседовании.

  • Язык
  • GIL и многопроцессность
  • Модель данных
  • Asyncio и конкурентность
  • Веб-бэкенд
  • Типизация
  • Стандартная библиотека
  • Производительность

15 рангов

Побеждаешь, и рейтинг растёт. Пять ступеней по три дивизиона, старт в Серебре II.

  1. Бронза
    IСтарт

    IIот 1 150

    IIIот 1 250

  2. Серебро
    Iот 1 350

    IIот 1 450

    IIIот 1 550

  3. Золото
    Iот 1 625

    IIот 1 700

    IIIот 1 775

  4. Алмаз
    Iот 1 850

    IIот 1 925

    IIIот 2 000

  5. Титан
    Iот 2 075

    IIот 2 150

    IIIот 2 250

Попробуй один вопрос по Python

Тренировка и матчи доступны после входа.