目前的代码。
@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会抱怨 "太多参数(65) (52:0) [too-many-arguments]"
我不知道如何在pylint配置文件中添加一个异常。
我想知道如何传递更多的选项到python的@click。 或者我需要重组我的文件,使每个选项有自己的@click.command和自己的python函数?
对不起,如果这一点是重复的,我找不到它,因为点击是一个非常通用的术语。
不太清楚你想用click做什么,包括在main中使用'click'会更好。
在测试模块click后,它只是将关键字参数发送到装饰的函数'main'。
Python 以字典的形式获取关键字参数,所以你通常使用 **kwargs 来传递无限数量的关键字参数。
例子:在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': 无}。
进程结束,退出代码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': 无}。
进程结束,退出代码0
正如你所看到的,使用**kwargs会产生同样的结果。我不知道这是否会影响模块的行为,但至少参数是正确传递的。试试这个。