Помогите найти решение по декораторам

Рейтинг: 0Ответов: 1Опубликовано: 25.02.2023

Написать функцию, которая просит ввести имя и выводит на экран "Привет и введённое имя". Далее написать к функции декоратор, который изменяет функцию и переводит имя в заглавные буквы. У меня при выводе получается Привет Андрей АНДРЕЙ, а должно быть Привет АНДРЕЙ

a = input("Введите Ваше имя: ")
def decorator(func):
    def wrapper():
        func()
        print(a.upper())
    return wrapper
@decorator
def imy():
    print("Привет", a, end=' ')
imy()

Ответы

▲ 1Принят
def decorator(func):
    def wrapper():
        return func().upper()

    return wrapper


@decorator
def imy():
    return input("Введите Ваше имя: ")


print("Привет, ", imy())
Введите Ваше имя: Андрей
Привет,  АНДРЕЙ