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

discord.py开发中如何让/say命令支持多词内容输入

问题原因

discord.py 前缀命令默认按空格切割用户输入内容作为入参,当前say命令仅定义了单个string: str参数,因此只会匹配第一个空格前的文本,后续内容会被丢弃,导致多词输入仅返回第一个单词。

修复方案

在参数前添加*修饰符即可,该修饰符会让discord.py将该参数之后的所有输入内容完整合并为单个字符串传入,不再按空格分割。

修改后的完整代码:

import discord
from discord.ext import commands

bot = commands.Bot(command_prefix='/')

@bot.command()
async def say(ctx, *, string: str):
    await ctx.send(string)

bot.run('Token')
额外说明
  • 若需要限制输入长度,可给参数添加长度限制配置,示例:string: str = commands.parameter(max_length=2000),适配Discord单条普通消息的最大长度限制。
  • 当前实现的是前缀为/的普通文本命令,并非Discord官方的斜杠应用命令,若要实现原生斜杠命令需额外注册应用命令逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 21:45:07