当前代码:
@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 中将复杂类型作为参数
python - 如何在 Excel 的 Power Query 中运行 Python 脚本
javascript - 如何在对象中保留一些深层 Prop ?