Вопросы по python на собеседовании
Мне скоро предстоят собеседования по языку python , поэтом в этой статье буду разбирать некоторые возможные вопросы , которые мне будут задавать, соответсвенно сам вникну и разберусь с этими вопросами
Контекстные менеджеры
Этот вопрос часто задают на собеседованиях. Помню мне тоже задавали этот вопрос , но тогда я только начинал использовать питон и на практике не использовал. Часто контекстные менеджеры используют при чтении данных из файла. Это классика
with open('test.txt', 'w', encoding='utf-8') as f:
d = int(input())
Тут опишем протокол
Чтобы объект стал контекстным менеджером в его класс нужно включить два метода __enter__ и __exit__
Первый метод выполняется до входа в блок. Методу нужно возвратить текущий экземпляр класса , чтобы к нему можно было обращаться через инструкцию as
Метод __exit__ будет вызываться после выхода из блока with. и он содержит три параметра. Мы в этом методе можем подавлять исключения , которые будут вызваны в блоке with
Вместо традиционного написания контестного менеджера , мы можем использовать декоратор @contextlib.contextmanager из модуля contextlib
Магия __slots__
Для экономии оперативной памяти мы в классе в __ slots__ можем указать те атрибуты для которых нужно выделить память.По умолчанию, Python использует словарь для хранения атрибутов объекта.