[英]How can I get an argument from error for discord.py?
我想得到如下图所示的参数:
我的代码:
class Admin(commands.Cog):
def __init__(self, bot):
self.bot = bot
@commands.command()
async def purge(self, ctx, amount: int):
await ctx.channel.purge(limit=amount+1)
@purge.error
async def purge_error(self, ctx, error):
if isinstance(error, commands.MissingRequiredArgument):
await ctx.send('Please enter a number.')
elif isinstance(error, commands.BadArgument):
await ctx.send('This is not a number.')
我该怎么做?
commands.BadArgument
未通过其他异常(如commands.MissingRequiredArgument
作为param
属性的inspect.Parameter
。
如果您尝试获取MissingRequiredArgument
的参数名称,则可以仅使用该属性和Parameter.name
。
否则,通常会向BadArgument
传递消息。 最常见的情况是一个包含Parameter.name
的字符串,格式为'Converting to "{}" failed for parameter "{}".'.format(name, param.name)
其中name
是转换器名称和param
是Parameter
,并且解析这可能是您图像中的机器人如何获取它。 在这种情况下,您可以通过将BadArgument
转换为字符串或作为异常的args
属性返回的元组中的第一个也是唯一的参数来获取此消息。 有关更多详细信息,请参阅Python 处理异常的文档。
但请注意,可以出于整数转换以外的原因以及不同或没有消息的原因引发BadArgument
,例如布尔转换器、Discord 转换器、自定义转换器等。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.