Исправьте имя декоратора на @hello и Print на print. Обёртка выводит приветствие, вызывает сложение, выводит прощание и возвращает результат исходной функции.
два числа сложить в одной функции
Исправьте имя декоратора на @hello и Print на print. Обёртка выводит приветствие, вызывает сложение, выводит прощание и возвращает результат исходной функции.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
два числа сложить в одной функции поверх декоратор который пишет сначала привет потом вызывает функцию сложения пишет пока
def hello(func): def wrapper(a,b): print('Привет') result = func(a,b) print("Пока") return result
return wrapper
@hello_bye_dec def add_numbers(a,b): return a+b
Print(add_numbers(2,3))
Ответ
Исправьте имя декоратора на @hello и Print на print. Обёртка выводит приветствие, вызывает сложение, выводит прощание и возвращает результат исходной функции.
Рабочий вариант для успешного вызова:
from functools import wraps
def hello(func):
@wraps(func)
def wrapper(*args, **kwargs):
print('Привет')
result = func(*args, **kwargs)
print('Пока')
return result
return wrapper
@hello
def add_numbers(a, b):
return a + b
print(add_numbers(2, 3))
Вывод — три строки: «Привет», «Пока», 5. Если прощание требуется даже при ошибке функции, его помещают в finally, не подавляя исключение.