Дрон Кодер — программирование для детей и взрослых в игровой форме. Начать бесплатно

Что такое побочный эффект функции

Функция может просто вернуть результат, а может ещё и что-то изменить вокруг — это и называют побочным эффектом.

Что это такое

Побочный эффект — это любое действие функции за пределами возврата значения: печать на экран, изменение переданного списка, запись в файл, изменение глобальной переменной. Функция что-то «сделала с миром», а не только посчитала.

Чистая функция для сравнения

Функция без побочных эффектов называется чистой: она только принимает аргументы и возвращает результат, ничего вокруг не трогая. Её проще тестировать и переиспользовать, потому что результат зависит только от входа.

def square(x):     # чистая: только возвращает
    return x * x

def show(x):       # побочный эффект: печатает
    print(x)

Почему это важно знать

Побочные эффекты не плохи — без печати и записи в файл программы бесполезны. Важно понимать, у какой функции они есть: это помогает искать баги (например, функция неожиданно изменила ваш список) и писать более предсказуемый код.

Частые вопросы

print — это побочный эффект? Да, вывод на экран — классический пример.

Побочные эффекты — это плохо? Нет, но их стоит держать под контролем и понимать, где они есть.

Начать игру бесплатно
Попробуй прямо здесь
Уровень 1

Задание