Python 如何从命令discord.py获取子命令列表

Python 如何从命令discord.py获取子命令列表,python,python-3.x,discord,discord.py,Python,Python 3.x,Discord,Discord.py,(discord.py 1.5.0)我希望从命令中获取子命令列表,然后将其显示在嵌入中。这是我的密码: async def cmd_帮助(self、ctx、command): embed=discord.embed(title=f“{str(command).upper()}Help!”,description=syntax(command),color=0xF8FF) if command.parent在self.bot.get_command(command.walk_commands()中

(discord.py 1.5.0)我希望从命令中获取子命令列表,然后将其显示在嵌入中。这是我的密码:

async def cmd_帮助(self、ctx、command):
embed=discord.embed(title=f“{str(command).upper()}Help!”,description=syntax(command),color=0xF8FF)
if command.parent在self.bot.get_command(command.walk_commands()中:
SCmd=“”
对于command.parent中的子命令:
SCmd+=f“`{subcommand}`-{subcommand.description}\n”
embed.add_字段(name='Subcommands:',value=SCmd)
embed.add_字段(name=f'Command Description:',value=Command.help或Command.Description)
embed.set_页脚(text='-必需|[]-可选)
等待ctx.send(嵌入=嵌入)
但这给了我一个错误:

忽略on_命令中的异常\u错误
回溯(最近一次呼叫最后一次):
文件“/opt/virtualenvs/python3/lib/python3.8/site packages/discord/client.py”,第333行,在运行事件中
等待coro(*args,**kwargs)
文件“/home/runner/KIGM Discord Bot/cogs/other/cog_events.py”,第75行,on_命令错误
提出错误
文件“/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/ext/commands/core.py”,第85行,包装
ret=等待coro(*args,**kwargs)
文件“/home/runner/KIGM Discord Bot/cogs/comms/cog_help.py”,第151行,在“帮助”中
等待self.cmd\u帮助(ctx,命令)
文件“/home/runner/KIGM Discord Bot/cogs/comms/cog_help.py”,cmd_help第26行
if command.parent在self.bot.get_command(command.walk_commands()中:
文件“/opt/virtualenvs/python3/lib/python3.8/site packages/discord/ext/commands/core.py”,第1216行,在get_命令中
如果“”不在名称中:
TypeError:类型为“Group”的参数不可编辑
我在文档中搜索了一下,没有找到任何与获取子命令列表相关的内容,只有获取子命令的父命令。有人想帮忙吗


编辑2021年2月 我已经通过这样做自己解决了这个问题:

if-isinstance(命令,组):#检查它是否有子命令
SCmd=”“#生成一个空字符串以在上添加子命令
对于命令中的子命令。walk_commands():#遍历命令的所有父/子命令
if subcommand.parents[0]==command:#检查子命令的最新父命令是否为命令本身
SCmd+=“**•{0.name}**\n”.format(subcommand)#如果是,则将其添加到字符串中。
else:#else语句是可选的。
持续
embed.add_字段(name='Subcommands',value=SCmd,inline=False)

您拥有的
命令
参数已经是commands.Group,您应该将第26行更改为

if command.parent在command.walk_commands()中:

虽然我认为你的if语句和for循环混淆了。你应该看一下。

正如有人建议的那样,我应该回答我的问题,就在这里

if-isinstance(command,commands.Group):#检查它是否有子命令
SCmd=”“#生成一个空字符串以在上添加子命令
对于命令中的子命令。walk_commands():#遍历命令的所有父/子命令
if subcommand.parents[0]==command:#检查子命令的最新父命令是否为命令本身
SCmd+=“**•{0.name}**\n”.format(subcommand)#如果是,则将其添加到字符串中。
else:#else语句是可选的。
持续
embed.add_字段(name='Subcommands',value=SCmd,inline=False)
由于这非常具体,您可以将其转换为一个列表一个列表:

[command.walk\u commands()中的subcommand的子命令(如果subcommand.parents[0]==command]

我还没有测试过,所以如果有问题,就评论一下这个答案吧

如果您已经解决了这个问题,您应该回答自己的问题:)Done@12944qwerty!:)