Discord.py代码执行出现额外多余文本问题如何解决
Discord.py 多余输出问题修复方案
错误原因
你代码中传给message.channel.send()的参数是生成器表达式 random.choice(symbols) for x in range(6),Discord.py 无法直接识别生成器对象,会直接输出生成器的对象描述文本,这就是多余输出的来源。你观察到的末尾动态变化的6位字符是生成器对象内存地址的字符片段,不是你预期生成的随机验证码。
修复代码
你需要先把6个随机字符拼接为完整的字符串,再调用发送接口,修复后代码如下:
import random import discord from discord.ext import commands # 随机字符池 symbols = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890" # 请补充你自己的client初始化逻辑,示例如下: # intents = discord.Intents.default() # intents.message_content = True # client = commands.Bot(command_prefix='!', intents=intents) @client.event async def on_message(message): # 过滤机器人自身发送的消息,避免死循环 if message.author.bot: return if message.content.startswith('Код'): # 拼接6位随机字符串 verify_code = ''.join(random.choice(symbols) for _ in range(6)) await message.channel.send(verify_code)
补充说明
- 如果你需要给验证码增加固定提示文本,直接拼接字符串即可,示例写法:
await message.channel.send(f"你的验证码是:{verify_code}") - 注意必须开启
message_content权限,否则机器人无法读取消息内容,无法触发对应逻辑。
内容的提问来源于stack exchange,提问作者369
相关产品推荐
相关产品推荐

