Что такое побочный эффект функции
Функция может просто вернуть результат, а может ещё и что-то изменить вокруг — это и называют побочным эффектом.
Что это такое
Побочный эффект — это любое действие функции за пределами возврата значения: печать на экран, изменение переданного списка, запись в файл, изменение глобальной переменной. Функция что-то «сделала с миром», а не только посчитала.
Чистая функция для сравнения
Функция без побочных эффектов называется чистой: она только принимает аргументы и возвращает результат, ничего вокруг не трогая. Её проще тестировать и переиспользовать, потому что результат зависит только от входа.
def square(x): # чистая: только возвращает
return x * x
def show(x): # побочный эффект: печатает
print(x)
Почему это важно знать
Побочные эффекты не плохи — без печати и записи в файл программы бесполезны. Важно понимать, у какой функции они есть: это помогает искать баги (например, функция неожиданно изменила ваш список) и писать более предсказуемый код.
Частые вопросы
print — это побочный эффект? Да, вывод на экран — классический пример.
Побочные эффекты — это плохо? Нет, но их стоит держать под контролем и понимать, где они есть.
Начать игру бесплатно