Не могу понять результат декоратора
Написать функцию 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()