Не могу понять результат декоратора

Написать функцию bang, которая печатает "Boom" Написать декоратор repeat_n_times, у которого есть параметр n. Декоратор должен выполнить функцию bang n раз Не могу понять откуда появляется цифра "4" Результат программы : Boom Boom Boom Boom Boom Boom 4

def decorator(func):
    def wrapper(n):
        result = func()
        for result in range(n):
            func()
        return result
    return wrapper

@decorator
def bang():
    print("Boom")
print(bang(5))

Ответы (1 шт):

Автор решения: vitidev

Это из-за print(bang(5))

range(5) это 0, 1, 2, 3, 4. Вы используете result в for, а значит в конце цикла result = 4.

И четверка через return result попадает в print.

А Boom пишет 6 раз вместо 5 из-за лишней result = func()

→ Ссылка