python – 编写argparse解析器的最佳实践
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 编写argparse解析器的最佳实践,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3216字,纯文字阅读大概需要5分钟。
内容图文
![python – 编写argparse解析器的最佳实践](/upload/InfoBanner/zyjiaocheng/820/aaa2efb7ee5d4dbe8db25bcc12789f68.jpg)
是否有使用Python的argparse模块的最佳实践或样式指南?
我定期使用argparse,它会快速占用相当数量的行来处理所有配置.对于我发现接近PEP 8的几乎所有内容都会产生干净,可读的代码,但不是这里.最终结果总是一个难看的代码块,阅读起来很痛苦.
痛苦的阅读不是Pythonic:
07001
那么是否有PEP或其他资源提供了如何更好地格式化此代码的指南?
丑陋的样本(主要是在PEP 8之后):
parser = argparse.ArgumentParser(description='A nontrivial modular command')
subparsers = parser.add_subparsers(help='sub-command help')
parser_load = subparsers.add_parser('load', help='Load something somewhere')
parser_load.add_argument('--config',
help='Path to configuration file for special settings')
parser_load.add_argument('--dir', default=os.getcwd(),
help='The directory to load')
parser_load.add_argument('book', help='The book to load into this big thing')
parser_load.add_argument('chapter', nargs='?', default='',
help='Optionally specify a chapter')
parser_load.add_argument('verse', nargs='*',
help='Optionally pick as many verses as you want to'
' load')
parser_load.set_defaults(command='load')
parser_write = subparsers.add_parser(
'write', help='Execute commands defined in a config file')
parser_write.add_argument('config', help='The path to the config file')
parser_write.set_defaults(command='write')
parser_save = subparsers.add_parser(
'save',
help='Save this big thing for use somewhere later')
parser_save.add_argument('-n', '--name', default=None,
help='The name of the component to save')
parser_save.add_argument('path', help="The way out of Plato's cave")
parser_save.set_defaults(command='save')
...
args = parser.parse_args()
解决方法:
正如TemporalWolf评论的那样,我会更加一致地使用换行符,而且更多.即使代码现在看起来更长,我发现它更容易阅读:
>单个函数调用之间的垂直空间更大,因此更容易在视觉上区分
>每行一个参数,因此更容易看出使用哪一个
>靠近左边距的参数,因此需要更少的水平眼动和更少的不必要的换行符(如分割帮助字符串的那一行)
此外,通过重命名parser_X / parser_Y→X_parser / Y_parser,您可以更轻松地区分X / Y.
parser = argparse.ArgumentParser(
description='A nontrivial modular command'
)
subparsers = parser.add_subparsers(
help='sub-command help'
)
load_parser = subparsers.add_parser(
'load',
help='Load something somewhere'
)
load_parser.add_argument(
'--config',
help='Path to configuration file for special settings'
)
load_parser.add_argument(
'--dir',
default=os.getcwd(),
help='The directory to load'
)
load_parser.add_argument(
'book',
help='The book to load into this big thing'
)
load_parser.add_argument(
'chapter',
nargs='?',
default='',
help='Optionally specify a chapter'
)
load_parser.add_argument(
'verse',
nargs='*',
help='Optionally pick as many verses as you want to load'
)
load_parser.set_defaults(
command='load'
)
write_parser = subparsers.add_parser(
'write',
help='Execute commands defined in a config file'
)
write_parser.add_argument(
'config',
help='The path to the config file'
)
write_parser.set_defaults(
command='write'
)
save_parser = subparsers.add_parser(
'save',
help='Save this big thing for use somewhere later'
)
save_parser.add_argument(
'-n', '--name',
default=None,
help='The name of the component to save'
)
save_parser.add_argument(
'path',
help="The way out of Plato's cave"
)
save_parser.set_defaults(
command='save'
)
...
args = parser.parse_args()
内容总结
以上是互联网集市为您收集整理的python – 编写argparse解析器的最佳实践全部内容,希望文章能够帮你解决python – 编写argparse解析器的最佳实践所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。