Как сделать функцию счетчик? Python

Рейтинг: 2Ответов: 2Опубликовано: 18.05.2023

Нужна функция-счетчик, которая сохраняет свое значение в переменную, а потом при вызове еще раз изменяет эту переменную

Ответы

▲ 1Принят

Для этого можно использовать глобальную переменную, но вообще их надо использовать аккуратно:

s = 0
def func():
    global s
    s += 1
    return None

Здесь при каждом запуске функции счетчик будет увеличиваться на 1, таким образом написав print(s) в конце-можно узнать сколько раз запускалась функция func().

▲ 2

Всё-таки использовать глобальные переменные без явной нужды - не очень хорошо.

Если вам нужна функция, которая между вызовами должна сохранять какое-то состояние, то почти всегда стоит это делать через классы:

class CounterFunction:

    def __init__(self):
        self.counter = 0
    
    def __call__(self):
        self.counter += 1


func = CounterFunction()

func()
func()
func()

print(func.counter)  # Выведет: 3