python - PEP 符合点击使用情况
问题描述
我目前阅读了一些违反 pylint 设计模式的代码:
- 参数过多 (R0913)
- 本地人太多 (R0914)
通过使用 click 包的装饰器,如下例所示:
@click.command(help="Run this package on a file")
@click.argument("filename", default="test")
@click.option("--option1", default=1)
@click.option("--option2", default=1)
@click.option("--option3", default=1)
@click.option("--option4", default=1)
@click.option("--option5", default=1)
def main(
filename,
option1,
option2,
option3,
option4,
option5,
option6,
option7,
option8,
option9,
option10,
option11,
option12,
option13,
option14,
option15,
):
pass
他们是否有任何一致的方式来创建此功能而不会触发设计模式警告?
我现在关于参数解析,但我想知道,如果他们是使用这个包的合理方式。当然,禁用警告也不是目标。
解决方案
您可以使用关键字参数语法
@click.command(help="Run this package on a file")
@click.argument("filename", default="test")
@click.option("--option1", default=1)
@click.option("--option2", default=1)
@click.option("--option3", default=1)
@click.option("--option4", default=1)
@click.option("--option5", default=1)
def main(
filename,
**kwargs
):
pass
然后访问kwargs
字典中的参数。
推荐阅读
- python - How do I get these 2 cases to pass in my code?
- javascript - 从(换行符:正常)html中获取特定行
- c# - mscorlib 上的警告 MSB3258 以供共享参考
- html - Beautiful Soup Prettify(formatter = 'xml') 已弃用?
- go - 如何在 GO 中将 interface{} 转换为地图
- python-3.x - Python3 追溯问题
- python - 如果python tkinter中的条目为空白,如何将条目值设置为零?
- sqlite - SQLite/SQFlite 更新在 Flutter 应用程序中不起作用
- mongodb - 我想使用 nodejs 将数组值从 mongodb 添加到 csv 文件
- c# - 如何使用 stringbuilder loop.TQ 修复 sql 查询