Базовые вопросы для Python Developer, список будет пополняться или редактироваться в процессе. Welcome to PR!
- Стандартные типы данных, изменяемость и неизменяемость
str.split()
и другие методы строк- Разница между
tuple
иlist
- List comprehension, Generator comprehension
- Методы
any
,all
,max
,min
etc. - Множества (
set
), чем схожи с диктом, что может быть членом множества? - Как работает
dict
(обход коллизий в хэш таблице), что может быть ключом словаря? - Стандартные библиотеки (
sys
,os
,re
,datetime
) - variable swap
x, y = y, x
и почему это так работет в Python - Удалить повторяющиеся элементы в листе(через
set
, например) - PEP8, линтеры
- Менеджеры контекста, представление об их реализации внутри языка.
__enter__
,__exit__
, асинхронные менеджеры контекста. Обработка ошибок(параметры__exit__
) - Итераторы и генераторы(базовое представление о работе под капотом) -
__iter__
,next()
,yield
etc. - Декораторы, почему в Python возможна их реализация. Умение писать простые декораторы и понимать принцип их работы.
- lambda functions
- Разница между методом класса и статическим методом, как реализовать второй(
classmethod
vsstaticmethod
) - Тесты(pytest, unittest etc.)
- Шаблоны проектирования (Singleton, Decorator, etc)
- Магические методы(
__new__
,__init__
,__call__
,__hash__
,__eq__
,__bool__
etc) - Разница между
__new__
и__init__
async
andawait
(python 3.5+), event loop, coroutines etcdataclasses
- MRO, Плюсы и минусы множественного наследования (это зло), как проверить порядок наследования на объекте класса(метод
mro()
или__mro__
) __slots__
- Дескриптор протокола (
__get__
,__set__
,@property
,@property.setter
, etc) - multiprocessing vs threading, usecases
GIL
, problems, reasonsMetaclasses
- Функция
type()
, применение её как метакласса. - Дополнительные структуры данных из
collections
(Counter
и прочее) - Garbage Collection(GC), cyclic references, reference counting
- How Python manage memory(pool, block, arena)