如何在python bot中创建子命令。
@bot.group(pass_context=True)
async def First(ctx):
if ctx.invoked_subcommand is None:
await bot.say('Invalid sub command passed...')
@First.command(pass_context=True)
async def Second(ctx):
msg = 'Finally got success {0.author.mention}'.format(ctx.message)
await bot.say(msg)
答案 0 :(得分:2)
您也需要将Second
作为一个群组。
@bot.group(pass_context=True)
async def First(ctx):
if ctx.invoked_subcommand is None:
await bot.say('Invalid sub command passed...')
@First.group(pass_context=True)
async def Second(ctx):
if ctx.invoked_subcommand is Second:
await bot.say('Invalid sub command passed...')
@Second.command(pass_context=True)
async def Third(ctx):
msg = 'Finally got success {0.author.mention}'.format(ctx.message)
await bot.say(msg)
答案 1 :(得分:1)
子命令是属于组的命令。要创建一个组,请使用以下命令: (用你称之为客户端/机器人的任何东西替换客户端)
@client.group(invoke_without_command=True)
async def parent_command(ctx):
await ctx.send("Parent command!")
要为该组发出命令,请执行以下操作:
@parent_command.command()
async def child_command(ctx):
await ctx.send("Child command!")
invoke_without_command=True 将使得当您运行子命令时,父命令不会调用或运行(如果您调用它,则触发;))
您也可以分组,只需阅读上面的答案以获得更好的解释。