python-telegram-bot中如何通过MessageHandler获取骰子数值?
解决python-telegram-bot获取骰子数值报错问题
你的报错原因很明确:dice.value是属性而非方法,不能加()调用。
在python-telegram-bot的API定义里,Dice对象的value是存储骰子结果的整数属性,直接访问即可,不需要当成方法去执行。写成value()会让Python误以为这是一个可调用的方法,但实际上它只是一个普通整数,因此会抛出类似'int' object is not callable的错误。
修正后的handle_dice函数代码如下:
def handle_dice(update: Update, context: ContextTypes.DEFAULT_TYPE): # 直接访问value属性,无需加括号 dice_value = update.message.dice.value print(f"骰子的数值是:{dice_value}")
你之前注册handler的代码add_handler(MessageHandler(filters.Dice, handle_dice))是正确的,不需要修改。
内容的提问来源于stack exchange,提问作者Raysuoo
相关产品推荐
相关产品推荐

