You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

开发首个aiogram机器人提示chat_id、text局部变量未使用如何解决

警告产生原因

这两个警告的核心诱因是Python缩进语法错误:

  • Python以缩进划分代码块作用域,你代码中chat_id、text两个变量是定义在get_message异步处理函数内部的局部变量,但后续调用bot.send_message、打印返回结果的两行代码没有缩进,处于函数外的全局作用域。
  • 对get_message函数来说,内部定义完chat_id和text之后没有任何调用这两个变量的逻辑,函数执行完变量赋值就直接结束了,因此静态检测工具会判定两个局部变量定义后从未被使用。
  • 除了静态警告外,当前代码直接运行还会触发实际报错:一是全局作用域无法访问函数内部的局部变量,会抛出NameError;二是await关键字只能在异步函数内部使用,全局位置调用会直接触发语法错误。
修复方案

将发送消息、打印结果的代码缩进调整到get_message函数内部,和变量定义的代码保持同一缩进层级,同时去掉Bot实例定义行前多余的前置空格即可。
修复后的完整可运行代码:

from aiogram import Bot, Dispatcher, types
from aiogram.utils import executor

bot: Bot = Bot(token='替换为你自己的机器人TOKEN')
dp = Dispatcher(bot)


@dp.message_handler()
async def get_message(message: types.Message):
    chat_id = message.chat.id
    text = "shiz ?"
    # 以下两行调整缩进,放到函数内部
    sent_message = await bot.send_message(chat_id=chat_id, text=text)
    print(sent_message.to_python())


executor.start_polling(dp)

补充说明:写Python代码时建议统一使用4个空格作为缩进单位,不要混用Tab和空格,避免出现这类作用域错误。

内容的提问来源于stack exchange,提问作者keenanzz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 07:09:27