@Vinill80s

Как сохранить значение локальной переменной внутри функции?

Забыл, каким образом можно сохранить последнее значение переменной в функции, не прибегая к глобальным, декораторам, объектам (что-то вроде nonlocal, но без вложенных функций)?
Например, в функции локальная переменная при определении была равна M, а после последнего действия стала равна N, когда эту функцию вызовут в следующий раз, действия будут проводится уже со значением M.
  • Вопрос задан
  • 1644 просмотра
Пригласить эксперта
Ответы на вопрос 3
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Сохранять состояние функции между вызовами - плохая идея. Либо вам это вообще не нужно, либо используйте объекты.
Ответ написан
Комментировать
@Taus
Если очень хочется, то можно например так.
def foo():
    foo.buzz += 1
    return foo.buzz
foo.buzz = 0
Ответ написан
Комментировать
@bbkmzzzz
Как написал Сергей - плохая идея. Но способ есть, хоть и дурной. Использовать мутабельные объекты как аргумент функции, например список.
def foo(lst=[0]):
    print(lst[0])
    lst[0] += 1

for _ in range(5):
    foo()
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы