Programming & QA
322 subscribers
300 photos
178 links
Smartiqa - платформа о технологиях, программировании и тестировании ПО.

Сайт: https://smartiqa.ru
Канал YouTube: https://www.youtube.com/channel/UCk_7MNLSD0S2fxi0EQ-V6lQ
Vkontakte: https://vk.com/smartiqa
Vkontakte Python: https://vk.com/smartiqa_python
Download Telegram
Вопрос №165

Q: Как пройтись по всем парам ключ-значение в словаре?

A: for key, value in dct.items():
👍1
Вопрос №166

Q: Что такое lambda в Python?

A: Анонимная функция, то есть функция, которая имеет функционал (в одну строку), но не имеет имени. Как правило, используется как параметр функции (например filter(), sorted()) или как возвращаемое значение функции.
Вопрос №167

Q: Что такое декоратор?

A: Декоратор - это обёртка над функцией (или другим объектом), которая изменяет ее поведение. Это удобно, т.к. не нужно менять исходный код, который не обязательно будет вашим. Использование: оценка времени работы функции, кеширование, запуск только в определенное время, задание параметров подключения к базе данных и т.д.
Вопрос №168

Q: Знаете ли какие-нибудь встроенные в Python декораторы?

A: 1. @staticmethod, @classmethod.
2. @lru_cache из модуля functools.
3. @dataclass из модуля dataclass
👍1👎1
Вопрос №169

Q: Что такое контекстный менеджер? Для чего он нужен? Приведите пример.

A: Контекстные менеджеры позволяют задать поведение при работе с конструкцией with: при входе и выходе из блока. Это упрощает работу с ресурсами в части их захвата и освобождения. Частый кейс - закрытие файловых дескрипторов.
Вопрос №170

Q: Приведите пример обработки исключения.
👍1🔥1
Вопрос №171

Q: Назовите основные функции по работе с json в питоне.

A: Запись: dump(), dumps(). Чтение: load(), loads().
Вопрос №172

Q: Какой вывод ожидается после третьего вызова функции? Почему?

А: В Python аргументы со значением по умолчанию вычисляются единожды в момент объявления функции. В нашем примере таким аргументом является список lst. И каждый раз при вызове функции - его содержимое будет меняться.
Вопрос №173

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().