Вопрос №165
Q: Как пройтись по всем парам ключ-значение в словаре?
A: for key, value in dct.items():
Q: Как пройтись по всем парам ключ-значение в словаре?
A: for key, value in dct.items():
Вопрос №167
Q: Что такое декоратор?
A: Декоратор - это обёртка над функцией (или другим объектом), которая изменяет ее поведение. Это удобно, т.к. не нужно менять исходный код, который не обязательно будет вашим. Использование: оценка времени работы функции, кеширование, запуск только в определенное время, задание параметров подключения к базе данных и т.д.
Q: Что такое декоратор?
A: Декоратор - это обёртка над функцией (или другим объектом), которая изменяет ее поведение. Это удобно, т.к. не нужно менять исходный код, который не обязательно будет вашим. Использование: оценка времени работы функции, кеширование, запуск только в определенное время, задание параметров подключения к базе данных и т.д.
Вопрос №168
Q: Знаете ли какие-нибудь встроенные в Python декораторы?
A: 1. @staticmethod, @classmethod.
2. @lru_cache из модуля functools.
3. @dataclass из модуля dataclass
Q: Знаете ли какие-нибудь встроенные в Python декораторы?
A: 1. @staticmethod, @classmethod.
2. @lru_cache из модуля functools.
3. @dataclass из модуля dataclass
Вопрос №169
Q: Что такое контекстный менеджер? Для чего он нужен? Приведите пример.
A: Контекстные менеджеры позволяют задать поведение при работе с конструкцией with: при входе и выходе из блока. Это упрощает работу с ресурсами в части их захвата и освобождения. Частый кейс - закрытие файловых дескрипторов.
Q: Что такое контекстный менеджер? Для чего он нужен? Приведите пример.
A: Контекстные менеджеры позволяют задать поведение при работе с конструкцией with: при входе и выходе из блока. Это упрощает работу с ресурсами в части их захвата и освобождения. Частый кейс - закрытие файловых дескрипторов.
Вопрос №172
Q: Какой вывод ожидается после третьего вызова функции? Почему?
А: В Python аргументы со значением по умолчанию вычисляются единожды в момент объявления функции. В нашем примере таким аргументом является список lst. И каждый раз при вызове функции - его содержимое будет меняться.
Q: Какой вывод ожидается после третьего вызова функции? Почему?
А: В Python аргументы со значением по умолчанию вычисляются единожды в момент объявления функции. В нашем примере таким аргументом является список lst. И каждый раз при вызове функции - его содержимое будет меняться.
Вопрос №173
Q: Что такое *args, **kwargs? Зачем используются * и ** в записи?
A: Используются для передачи неименованных (*args) и именованных (**kwargs) параметров переменного количества. То есть необходимы в случае, когда заранее неизвестно количество параметров. Важный момент - слова args и kwargs не являются обязательными (их можно заменить на другие). А важны именно знаки * (распаковка параметров в список) и ** (распаковка параметров в словарь).
Q: Что такое *args, **kwargs? Зачем используются * и ** в записи?
A: Используются для передачи неименованных (*args) и именованных (**kwargs) параметров переменного количества. То есть необходимы в случае, когда заранее неизвестно количество параметров. Важный момент - слова args и kwargs не являются обязательными (их можно заменить на другие). А важны именно знаки * (распаковка параметров в список) и ** (распаковка параметров в словарь).
Вопрос №174
Q: Приведите примеры magic (dunder) методов.
A: Работа с объектом класса: new(), init(), del(). Сравнение: eq(), ne(), lt(). Арифметические операторы: add(), sub(), div(). Информация о своем классе: str(), repr(), dir(), sizeof(). Контроль доступа к атрибутам: getattr(), setattr(). Методы, которые используют контейнеры: len(), getitem(), setitem(), iter(), contains(). Вызов объекта: call(). Контекстный менеджер: enter(), exit().
Q: Приведите примеры magic (dunder) методов.
A: Работа с объектом класса: new(), init(), del(). Сравнение: eq(), ne(), lt(). Арифметические операторы: add(), sub(), div(). Информация о своем классе: str(), repr(), dir(), sizeof(). Контроль доступа к атрибутам: getattr(), setattr(). Методы, которые используют контейнеры: len(), getitem(), setitem(), iter(), contains(). Вызов объекта: call(). Контекстный менеджер: enter(), exit().