Вопрос №162
Q: Чем отличаются изменяемые и неизменяемые данные?
A: Изменяемый тип — сложный тип данных в объектно-ориентированном программировании, значения которого (как правило — объекты) после своего создания допускают изменение своих свойств. К неизменяемым относятся целые числа (int), числа с плавающей запятой (float), булевы значения (bool), строки (str), кортежи (tuple). К изменяемым — списки (list), множества (set), байтовые массивы (byte arrays) и словари (dict).
Q: Чем отличаются изменяемые и неизменяемые данные?
A: Изменяемый тип — сложный тип данных в объектно-ориентированном программировании, значения которого (как правило — объекты) после своего создания допускают изменение своих свойств. К неизменяемым относятся целые числа (int), числа с плавающей запятой (float), булевы значения (bool), строки (str), кортежи (tuple). К изменяемым — списки (list), множества (set), байтовые массивы (byte arrays) и словари (dict).
👍1
Вопрос №163
Q: Дан кортеж: tpl = (1, 2, 3, [1,2,3], 5). Как все знают, кортеж - это неизменяемый тип данных. Изменится ли его содержимое после выполнения команды tpl[3].append(4)?
A: Да, изменится, так как кортеж содержит только ссылки на объекты и поэтому не может защитить объект внутри себя от изменения.
Q: Дан кортеж: tpl = (1, 2, 3, [1,2,3], 5). Как все знают, кортеж - это неизменяемый тип данных. Изменится ли его содержимое после выполнения команды tpl[3].append(4)?
A: Да, изменится, так как кортеж содержит только ссылки на объекты и поэтому не может защитить объект внутри себя от изменения.
Вопрос №164
Q: Чем отличаются генераторы от итераторов?
A: Итератор — механизм поэлементного обхода данных, а генератор позволяет отложено создавать результат при итерации. Генератор может создавать результат на основе алгоритма или брать элементы из источника данных и изменять их. Получаем разделение ответственности: клиенты имеют возможность работать с разными коллекциями унифицированным образом, а коллекции становятся проще за счет того, что делегируют перебор элементов другой сущности. Любой генератор в Python - итератор, но не наоборот. Примеры генераторов: range() (генерирует арифметическую прогрессию), enumerate() (генерирует двухэлементные кортежи: индекс + элемент итерируемого объекта)
Q: Чем отличаются генераторы от итераторов?
A: Итератор — механизм поэлементного обхода данных, а генератор позволяет отложено создавать результат при итерации. Генератор может создавать результат на основе алгоритма или брать элементы из источника данных и изменять их. Получаем разделение ответственности: клиенты имеют возможность работать с разными коллекциями унифицированным образом, а коллекции становятся проще за счет того, что делегируют перебор элементов другой сущности. Любой генератор в Python - итератор, но не наоборот. Примеры генераторов: range() (генерирует арифметическую прогрессию), enumerate() (генерирует двухэлементные кортежи: индекс + элемент итерируемого объекта)
Вопрос №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: при входе и выходе из блока. Это упрощает работу с ресурсами в части их захвата и освобождения. Частый кейс - закрытие файловых дескрипторов.