@quantum32043

Как вернуть результат работы декоратора?

Ситуация такая, понадобилось вернуть результат работы следующего декоратора из модуля Pyrogram:
@app.on_message(filters.text)
def message(client, message):
msg = message.text
return msg
Однако, сделать это по принципу a = message() не удаётся, так как мне не нужно передавать в эту функцию никакие аргументы, ведь они и так появляются, как я понял, в результате работы декоратора on_message. Буду очень признателен, если кто-либо подскажет, что я могу с этим сделать.
  • Вопрос задан
  • 108 просмотров
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
Ну для начала, что ты понимаешь под "результатом работы декоратора"?
Результат работы декоратора - это функция, если что!
Т.е. код
@app.on_message(filters.text)
def message(client, message):
    msg = message.text

Практически эквивалентен коду
decorator = app.on_message(filters.text)

def message(client, message):
    msg = message.text
# функция заменяется на результат работы декоратора - на ту же самую или другую функцию
message = decorator(message)

А уж что возвращает декоратор, а также что еще он делает с функцией - это его дело.

Более того, в твоем случае я сильно подозреваю что функция message() не должна ничего возвращать. Если тебе нужно сохранить введённое сообщение, используй глобальные переменные.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы