tgoop.com/python_interview/8
Last Update:
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
Если унаследовать от двух метаклассах то будет конфликт метаклассов, ошибка
BY Python. Собеседование. Книги.
Share with your friend now:
tgoop.com/python_interview/8