Discord.py斜杠命令如何定义接收数字输入的参数
Discord.py 斜杠命令接收数字输入的参数标注方法
根据你需要接收的数字类型,在标注位置填写对应类型即可:
- 接收整数输入:填写
int,框架会自动将选项识别为整数类型,自动校验用户输入合法性 - 接收浮点数(小数)输入:填写
float - 需要限制数字取值范围时,使用
discord.app_commands.Range类型,可自定义最小值、最大值,非法输入会被Discord客户端直接拦截
基础整数输入的正确代码示例
@tree.command(guild = discord.Object(id=guild_id), name = 'leaderbord', description='Check leaderbord') async def slash3(interaction: discord.Interaction, number: int): # 此处number已经是转换完成的整数类型,可直接使用 await interaction.response.send_message(f"当前查询的排行榜条目数:{number}")
带范围限制的数字输入示例
如果需要限制用户只能输入1-100之间的整数(比如排行榜最多查前100名),可以按如下写法:
from discord import app_commands @tree.command(guild = discord.Object(id=guild_id), name = 'leaderbord', description='Check leaderbord') async def slash3(interaction: discord.Interaction, number: app_commands.Range[int, 1, 100]): await interaction.response.send_message(f"为你展示前{number}名的排行榜数据")
提示:不需要手动编写参数类型转换、非数字输入校验逻辑,Discord.py的应用命令框架会自动完成这部分工作,用户输入不符合类型要求的内容时,会直接在Discord输入侧收到错误提示,不会进入命令执行逻辑。
内容的提问来源于stack exchange,提问作者Tim
相关产品推荐
相关产品推荐

