Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Python: pure, function

Как сделать функцию «чистой», чтобы она не изменяла входные данные?

Вопрос проверяет понимание функционального подхода и контроля побочных эффектов.

Короткий ответ

Чистая функция не изменяет входные данные и возвращает новый результат. Для этого нужно работать с копиями объектов или использовать неизменяемые структуры. Также функция не должна зависеть от внешнего состояния. Это делает код предсказуемым и удобным для тестирования.

Длинный ответ

Что такое чистая функция

Определение:
Чистая функция — это функция, которая:

  1. Не изменяет входные данные

  2. Не использует внешнее состояние

  3. Всегда возвращает одинаковый результат при одинаковых входных данных

Пример нечистой функции

def add_item(lst):
    lst.append(1)
    return lst

Она изменяет аргумент.

Пример чистой функции

def add_item(lst):
    new_list = lst.copy()
    new_list.append(1)
    return new_list

Исходный список остается неизменным.

Способы сделать функцию чистой

  1. Делать копии входных данных

  2. Использовать неизменяемые типы

  3. Не читать глобальные переменные

  4. Не выполнять IO внутри функции

Где это важно

  1. Тестирование

  2. Параллельные вычисления

  3. Кэширование результатов

Вывод

Чистые функции уменьшают количество ошибок и делают поведение программы предсказуемым.

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    4

  • Сложность:

    6

Навыки

  • Python

    Python

Ключевые слова

#pure

#function

Подпишись на Python Developer в телеграм

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.