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