【问题标题】:How to solve this error : AttributeError: 'NoneType' object has no attribute 'reply_text'?如何解决此错误:AttributeError: 'NoneType' object has no attribute 'reply_text'?
【发布时间】:2021-03-10 12:17:21
【问题描述】:

我有一个按钮,它应该返回 ask_wikipedia 函数,所以我使用了 CallbackQueryHandler 但是当我想调用 ask_wikipedia 函数时,我收到一个属性错误! 为什么? 我该如何解决?

def Click_Button(update, context) :
    query = update.callback_query
    if query.data == "Research":
        ask_wikipedia(update, context)

query_handler = CallbackQueryHandler(Click_Button)

dispatcher.add_handler(query_handler)



def ask_wikipedia(update, context)  :
    update.message.reply_text('What do you want to know about ? ????')
    return About


当我点击按钮时出现此错误

AttributeError: 'NoneType' object has no attribute 'reply_text'

我该如何解决?

【问题讨论】:

  • CallbackQueryHandler函数中有return语句吗?
  • 不,我不这么认为......
  • query_handler 将成为 NoneType 。您应该为要保存在 query_handler 变量中的任何内容添加一个 return 语句。
  • 对不起,我真的是菜鸟,我该如何添加退货声明?
  • 不用担心哈哈。 “return About”是“ask_wikipedia”函数中的 return 语句示例。因此,只需添加“return”,后跟作为函数输出的变量作为函数的最后一行。也要注意缩进。它应该只距边缘一层。

标签: python telegram telegram-bot attributeerror python-telegram-bot


【解决方案1】:

当回复短信(来自MessageHandler)时可以使用update.message.reply_text,但在您的情况下,传入的消息是由接收不同对象的 CallbackHandler 管理的。
您可以回复使用

update.callback_query.message.edit_text(message)

【讨论】:

    猜你喜欢
    • 2021-08-22
    • 2021-04-06
    • 2021-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-15
    • 1970-01-01
    • 2022-12-04
    相关资源
    最近更新 更多