当前位置: 首页 > 面试题库 >

Discord.py缺少必需的参数

弓华茂
2023-03-14
问题内容

我有一个重写版本discord.py。如果消息中包含内容,则不会发生错误。如果消息中内容不存在,则我希望该错误不会发生。

我的代码:

    @client.command(pass_context = True)
    def async search(ctx,message):
    ...
    some code 
    ...
         if members_count < voice_channel.user_limit:
                        message.content += ' '
                        print(message.content)

                        invite = await channel.create_invite(max_age=0)
                        avatar = user.avatar_url
                        if message == '':
                            message_for_emb = '\u200b'
                        elif message != '':
                            message_for_emb = ':white_small_square: {}'.format(message)
                        if user.default_avatar_url == avatar:
                            avatar = 'https://i.imgur.com/XjeDXnB.png'
                        embed = discord.Embed(description=members, colour=discord.Embed.Empty)
                        embed.set_author(name='В поисках +{} в {}  {}'.format((voice_channel.user_limit - members_count),
                                                                          voice_channel.category.name,voice_channel.name), icon_url=avatar)
                        embed.add_field(name=message_for_emb,
                                        value='Зайти: {} :white_check_mark:'.format(invite.url), inline=False)
                        await channel.send(embed=embed)

完整回溯:

Ignoring exception in command search:
Traceback (most recent call last):
  File "C:\Users\Даниил\PycharmProjects\discordbot\venv\lib\site-packages\discord\ext\commands\bot.py", line 886, in invoke
    yield from ctx.command.invoke(ctx)
  File "C:\Users\Даниил\PycharmProjects\discordbot\venv\lib\site-packages\discord\ext\commands\core.py", line 491, in invoke
    yield from self.prepare(ctx)
  File "C:\Users\Даниил\PycharmProjects\discordbot\venv\lib\site-packages\discord\ext\commands\core.py", line 455, in prepare
    yield from self._parse_arguments(ctx)
  File "C:\Users\Даниил\PycharmProjects\discordbot\venv\lib\site-packages\discord\ext\commands\core.py", line 369, in _parse_arguments
    transformed = yield from self.transform(ctx, param)
  File "C:\Users\Даниил\PycharmProjects\discordbot\venv\lib\site-packages\discord\ext\commands\core.py", line 249, in transform
    raise MissingRequiredArgument(param)
discord.ext.commands.errors.MissingRequiredArgument: message is a required argument that is missing.

问题答案:

命令解析参数的方式意味着定义

async def search(ctx, message):

表示search需要单词message作为命令调用的一部分。如果您想捕获消息的其余部分,则可以使用仅关键字参数语法:

async def search(ctx, *, message)

此功能在此处记录。



 类似资料:
  • 问题内容: 我正在开发一个游戏作为附带项目,很有趣,但是遇到了这个错误,我真的不知道为什么会发生… 这是代码: 我这样称呼它: 我得到的错误是: 有任何想法吗? 问题答案: 您不应直接调用类方法,而应创建该类的实例: 要详细说明该错误,您将得到: TypeError:turn()缺少1个必需的位置参数:“ playerImages” 这是因为需要第一个参数()的实例。类方法总是将实例作为第一个参数

  • 在我的MEAN Stack应用程序中使用(可在此处找到:https://github.com/jaredhanson/passport-google-oauth)。当我运行应用程序并尝试使用Google API登录时,将返回此错误 错误:invalid_request 请求详细信息scope=https://www.googleapis.com/auth/plus.login response_t

  • 我无法通过错误: 我检查了几个教程,但似乎没有什么不同于我的代码。我唯一能想到的是Python3.3需要不同的语法。 如果我理解正确,会自动传递给构造函数和方法。我做错了什么?

  • 我正在尝试在Titanium应用程序中从Google获取access_token以访问Google API。我在Google API控制台中注册了一个Android Oauth2.0客户端,因此我有一个客户端ID和两个由Google生成的重定向uri:[“urn:ietf:wg:oauth:2.0:oob”,“http://localhost“]。我正在尝试遵循授权代码流,因此我向endpoint

  • 云功能部署失败:缺少资源项目/ourcafe-mucqxq上service-1044193269753@gcf-admin-robot.iam.gserviceAccount.com的必需权限resourceanager.projects.getiampolicy。请授予service-1044193269753@gcf-admin-robot.iam.gserviceAccount.com云功能

  • 问题内容: 我是python新手,碰壁了。我遵循了一些教程,但无法克服错误: 我检查了一些教程,但似乎与我的代码没有什么不同。我唯一能想到的是python 3.3需要不同的语法。 主要技巧: 泵类: 如果我正确理解,“自我”将自动传递给构造函数和方法。我在这里做错了什么? 我正在将Windows 8与python 3.3.2一起使用 问题答案: 你需要在此处实例化一个类实例。 采用 小例子