python - 使用 Python Click,如何添加超过 5 个选项,即超过 5 个?

当前代码:

@click.command()
@click.option('--logs', type=click.Choice(['all', 'errors', 'no-errors', 'archive',
                                           'archive-with-errors']))
@click.option('--process', type=click.Choice(['all', 'fix', 'spool', 'status', 'import']))
@click.option('--quiet', is_flag=True)
@click.option('--check', is_flag=True)
@click.option('--scan', nargs=1)
def main(logs, process, quiet, check, scan):

如果我向主函数添加第 6 个选项,pylint 会提示“太多参数 (6/5) (52:0) [太多参数]”

我不想向 pylint 配置文件添加异常。

我想知道如何将更多选项传递给 python @click。或者我是否需要重组我的文件,以便每个选项都有自己的 @click.command 和自己的 python 函数?

抱歉,如果这是重复的,我找不到它,因为点击是一个非常笼统的术语。

最佳答案

不太确定您要用点击做什么,包括在 main 中使用“点击”会很好。

测试模块点击后,它只是将关键字参数发送到修饰函数“main”。

Python 将关键字参数作为字典获取,因此您通常使用 **kwargs 来传递无限数量的关键字参数。


例子:

@click.command()
@click.option('--logs', type=click.Choice(['all', 'errors', 'no-errors', 'archive', 'archive-with-errors']))
@click.option('--process', type=click.Choice(['all', 'fix', 'spool', 'status', 'import']))
@click.option('--quiet', is_flag=True)
@click.option('--check', is_flag=True)
@click.option('--scan', nargs=1)
def main(*args, **kwargs):
    click.echo(kwargs)

结果:

{'logs': None, 'process': None, 'quiet': False, 'check': False, 'scan': None}

Process finished with exit code 0


您的代码:

@click.command()
@click.option('--logs', type=click.Choice(['all', 'errors', 'no-errors', 'archive', 'archive-with-errors']))
@click.option('--process', type=click.Choice(['all', 'fix', 'spool', 'status', 'import']))
@click.option('--quiet', is_flag=True)
@click.option('--check', is_flag=True)
@click.option('--scan', nargs=1)
def main(logs, process, quiet, check, scan):
    click.echo(locals())

结果:

{'logs': None, 'process': None, 'quiet': False, 'check': False, 'scan': None}

Process finished with exit code 0


如您所见,使用 **kwargs 会产生相同的结果。我不知道这是否会影响模块的行为,但至少参数传递正确。试试这个。

https://stackoverflow.com/questions/62345735/

相关文章:

node.js - Node http.大文件传输失败并显示 'ERR_STREAM_PREMATU

javascript - 匿名访问如何跟踪?智威汤逊/ cookies / session ?

ruby-on-rails - 如何在 ruby​​ 中找到调用者类?

graphene-python - 如何在 Graphite 烯 Python 中将复杂类型作为参数

html - Nodejs如何从ejs文件生成pdf文件

python - 如何在 Excel 的 Power Query 中运行 Python 脚本

python - 条件概率 - Python

javascript - 如何在对象中保留一些深层 Prop ?

amazon-web-services - AWS 权限错误...Kinesis Firehose

flutter - 如何在 Flutter 的 initState 中获取当前的 App Local