微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在python单击组的嵌套列表中仅执行最终命令

如何解决在python单击组的嵌套列表中仅执行最终命令

我正在创建一组深层嵌套的命令,如click.group()s。我只想在按Enter键时执行到cli的最后一个组(命令)输入。

例如:

cli sub_command subsub_command # < -- should only execute subsub_command

...仅应执行最后一个命令subsub_command,但是,似乎单击想要执行全部命令。 (可能不包括subsub_command吗?):

$ cli sub-command subsub-command 
I am the root_command
I am sub_command
Usage: cli sub-command subsub-command [OPTIONS] COMMAND [ARGS]...

Options:
  --help  Show this message and exit.

它似乎还运行除最后一条命令以外的所有内容。为什么显示subsub_command的帮助而不是简单地执行它?

这是我的点击代码

import os
import sys

import click

@click.group(invoke_without_command=True)
def cli():
    print('I am the root_command')

@cli.group()
def sub_command(invoke_without_command=True):
    print('I am sub_command')

@sub_command.group()
def subsub_command(invoke_without_command=True):
    print('I am the subsub_command')

if __name__ == '__main__':
    cli()

任何想法都是有帮助的。谢谢!

解决方法

那是因为您反复使用@cli.group

使用@cli.command

定义命令

例如:

import click


@click.group()
def cli():
    pass


@cli.command(name='hello')
def hello():
    print('hello world!')

@group的思想是将多个命令组合在一起,group方法用于为整个组定义公共上下文代码。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。