Python. Собеседование. Книги.
44 subscribers
13 photos
5 files
11 links
加入频道
Datatypes

Какие есть изменяемые и неизменяемые типы данных?

Неизменяемые:
- Числа
- Строки
- Кортежи (tuples)
Изменяемые:
- Списки
- Словари
- Множества
Lists

Append vs Extend in lists
Если append итерируемый объект добавит как элемент, то extend расширяет его.

Pop vs Remove
Pop - удаляет по индексу и возвращает, remove - удаляет по значению

Что если в sort использовать разные типы данных?
Выдаст TypeError

Sort использует
Tim sort (merge sort and insertion sort)

Как устроен array list?
Динамический массив (3n + 1 расширение)

Как копировать список?
l2 = l1[:]
l2 = l1.copy()
Shallow copy

Чем отличается list и tuple?
Mutable/immutable
Кортежам есть применение в много поточности.
Dictionaries

Упорядоченные или нет?
До Python 3.7 - неупорядоченные
С Python 3.7 - упорядоченные
Better to use ordered dictionaries in collections

Ограничения:
Ключи только хешируемые, если встроенный тип - immutable
photo_2020-12-11_12-52-03.jpg
23.2 KB
Exceptions

Що такое exceptions, try-except?
В Питоне определен главный класс BaseException, от которого наследуются все остальные классы ошибок. У него есть четыре прямых наследника:
SystemExit – произошел выход из программы.
KeyboardInterrupt – пользователь прервал выполнение программы (комбинация Ctrl+C).
GeneratorExit – завершена работа объекта generator.
Exception – родительский класс для пользовательских исключений.
Можно ли оператор raise использовать без исключения которое мы генерируем?
Можно только внутри блока except, когда он может взять этот тип из except.
Используется для возможности дописать что-то перед исключением.

Exception chain
Когда происходит exception во время обработки другого.

Exit() перед finally
Finally сработает

Нужно ли всегда except?
Нет, можно try finally

Почему не нужно писать except без указания ошибки?
Потому что нельзя определить конкретную ошибку. Можно исправить except Exception.
Classes

Что такое класс?

Что такое метаклассы, переменная цикла?
Метаклассы – это классы, экземпляры которых являются классами.

Можно ли изменить поведение класса в Python?
Нет

В чем разница между staticmethod и classmethod?
Функция @staticmethod - это не что иное, как функция, определенная внутри класса. Она вызывается без предварительного создания экземпляра класса. Ее определение неизменяемо через наследование. Функция @classmethod также может быть вызвана без создания экземпляра класса, но ее определение следует за подклассом, а не за родительским классом, через наследование.

Property
Отделяет свойства класса от методов, позволив обращаться к свойствам не как к функциям, а как к атрибутам.

Как работают декораторы, контекстные менеджеры?
Смысл паттерна декоратор заключается в том, что некоторая функция заворачивается в другую функцию, приобретая от нее новые возможности. Например, так можно вести логи, вводить пред- и постусловия, добавлять методы для классов. Декораторы в Python – это, по сути, синтаксический сахар. Для их обозначения используется символ @. В Python есть несколько встроенных декораторов, например, @classmethod, @staticmethod, @property.

Что такое конструктор в Python ?
new

Self
Ссылка на экземпляр класса

Можно ли использовать несколько декораторов для одной функции?

Можно ли создать декоратор из класса?

В чем разница между итераторами и генераторами?
Итератор – это интерфейс, который позволяет перебирать элементы последовательности. Он используется, например, в цикле for но этот механизм скрыт от глаз разработчика.
Под капотом функциональность реализуется в методах iter и next.
Выражения-генераторы не создают целый список заданной длины сразу, а добавляют элементы по мере необходимости.

Magic methods
Init, new
Что первее нью или инит? new

Разница между init () и new
new – это первый шаг создания экземпляра. Он называется первым и отвечает за возврат нового экземпляра вашего класса. Напротив, init ничего не возвращает; он отвечает только за инициализацию экземпляра после его создания.

Разница str и repr?
Repr - то что видит разработчик.
Str - то что видит пользователь.
Если есть только репр то будет в обоих смыслах.
Если есть только стр то только как стр.

Diamond problem

Порядок MRO

C3 linearization

Super
Возвращает класс (на один выше)
Идет тоже по mro

Meta classes
Если унаследовать от двух метаклассах то будет конфликт метаклассов, ошибка
DataBase

Отношения один к одному, многие ко многим/одному в таблице

Что такое ОРМ
, в чем плюсы и минусы, что быстрее прямой запрос через SQL или ОRM, что именно используете в проекте если делали проект.

Truncate/Drop table
Truncate table удаляет только данные таблицы.
Drop table удаляет таблицу.

Constraints
Ограничения в таблице.
Other

How do you know git
Какие команды гита знаю, что юзал, какие ситуации были как решал

Automatic memory management
Удаляет неиспользуемые объекты в произвольный момент (зависит от реализации).

Garbage collector
Удаляет циклические ссылки (рекурсивные).

Какие есть виды импорта?

Какие основные популярные пакеты (requests, pytest, etc)?

Что такое lambda-функции?
Это анонимные функции которые могут использоваться даже там где нельзя использовать def. Часто в filter, map.

Как Python работает с HTTP-сервером?
Запросы в вашем проекте

Что происходит, когда создается виртуальная среда?

Jinja

Миграции

Hash

Python 2
Количество целых типов 2 (int, long)
Пайтон 2 умеет сравнивать не сравнимые типы
Практика:

- Написать какой-то несложный декоратор (выводит аргументы функции на экран или, например, измеряет сколько времени выполнялась функция).
- Посчитать количество появления определенного символа (буква А) в первых "n" елементах последовательности некой строки, которая строится из подстроки темплейта.
- Убрать пробелы в начале и конце строки и сделать одиночные между словами.
SQL Practice:

- Вывести все имена которые повторяются более одного раза
gil, stops in oop, db relation ships, Exceptions, generators, БД, __ и _, mock
практика: удалить пробелы лишние, факториал, словарь (zip из двух листов), словарь (сделать новый только из четных ключей)
Как можно получить приватный метод __
Питав по БД, по крудах, апі, тестах, і dependencies
Я перше не зрозумів нар рахунок які депенденсіс, але то було про реквайрментс і сетап
Отношение между классами
Singleton через метакласс как применение метакласса