Deep Engineering

Подготовка к собеседованию

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

25 уроков в линии

Все вопросы и короткие ответы — одной страницей →

  1. 1Классы и ООПSelf — это аргумент, а атрибут класса — один на всех30 МИН
  2. 2Встроенные коллекцииList, tuple, dict и set — что когда братьПонятнее после: Классы и ООП30 МИН
  3. 3Модули и импортМодуль выполняется один раз, а from копирует ссылкуПонятнее после: Встроенные коллекции35 МИН
  4. 4Сложность операцийO-нотация, посчитанная на встроенных типахПонятнее после: Встроенные коллекции25 МИН
  5. 5Строки и форматированиеНеизменяемость, срезы, f-строки и цена склейкиПонятнее после: Сложность операций35 МИН
  6. 6ТестированиеUnittest, pytest и mock — что на самом деле проверяетсяПонятнее после: Классы и ООП · Модули и импорт40 МИН
  7. 7Потоки и процессыЧто выбрать для вычислений, а что — для ожиданияПонятнее после: Модули и импорт25 МИН
  8. 8Окружения и зависимостиЧто делает venv, а что — pipПонятнее после: Модули и импорт25 МИН
  9. 9ДекораторыВыражения сверху вниз, применение снизу вверхВернитесь после: Замыкания · *args и **kwargs50 МИН
  10. 10ДескрипторыОдно правило приоритета, из которого растут property, методы и слотыПонятнее после: Декораторы35 МИН
  11. 11Итераторы и генераторыОдин метод разницы и одна тихая ошибка40 МИН
  12. 12Контекстные менеджерыДва метода, одна возвращаемая истина и одна тихая потеря данныхВернитесь после: Исключения и finally40 МИН
  13. 13Исключения и finallyОдно слово, после которого функция перестаёт падать30 МИН
  14. 14lambdaТо же самое, что def, кроме двух вещей — и знаменитая ошибка с циклом не из их числа20 МИН
  15. 15async/awaitВызов ничего не выполняет — и отсюда три ошибки, которые не падаютПонятнее после: Итераторы и генераторы · Исключения и finally · Контекстные менеджеры45 МИН
  16. 16*args и **kwargsДве звёздочки, которые стоят по-разному — и одна из них делает неизвестные имена допустимыми30 МИН
  17. 17Список против кортежа16 байт, которые получаются только при одном сравнении из трёх, и две операции, в которых разницы нетВернитесь после: is против ==40 МИН
  18. 18ВключенияГраница области видимости проходит внутри квадратных скобок, а не по нимПонятнее после: Итераторы и генераторыВернитесь после: Замыкания35 МИН
  19. 19ЗамыканияЗахвачена переменная, а не значение — и цепочка областей проходит мимо тела классаПонятнее после: lambda35 МИН
  20. 20MRO и множественное наследование: C3, ромб и куда на самом деле ведёт super()Понятнее после: Замыкания25 МИН
  21. 21КопированиеПрисваивание не копирует ничего, copy — один уровень, deepcopy — граф целикомПонятнее после: Список против кортежаВернитесь после: is против ==30 МИН
  22. 22is против ==Одно спрашивает про тождество, второе вызывает метод — и половина известных сюрпризов вообще не про них30 МИН
  23. 23Сборка мусораПочему объект жив, хотя ссылок на него нетПонятнее после: Исключения и finally25 МИН
  24. 24МетаклассыШесть шагов создания класса, из которых видно, что делать метаклассом, а что уже не надоПонятнее после: Дескрипторы · Декораторы25 МИН
  25. 25Аргумент по умолчаниюИзменяемый аргумент по умолчанию: значение лежит в поле функции, и оно одно на все вызовы25 МИН

Финальная проверка: линия Python

Двадцать пять вопросов на всю линию — по одному на каждый урок. Здесь не пересказ уроков, а места, где механизм даёт неожиданный ответ.

Финальная проверка1 / 25

Класс Point определяет __eq__ (равны, если равны координаты), но не __hash__. Что даст выражение {Point(1, 2), Point(1, 2)}?