7 сентября 2017 г. 1:25

141

Вопросы по 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 использует словарь для хранения атрибутов объекта.

Изменяемые типы данных в python

Кодировки(Unicode)

comments powered by Disqus