python - argparse 和 ConfigParser 字符串替换语法从何而来?

标签 python argparse configparser

在 argparse 中指定帮助时,我经常在 help= 中使用 %(default)s%(const)s 等字符串参数显示默认参数。不过,语法有点奇怪:我认为它是用 % 格式化 python 字符串的时代遗留下来的,但从 python 2.6 开始,格式化字符串的标准方法一直使用 format () 函数。

那么这些库只是使用“旧”替换语法,还是来​​自其他地方?有人说 % 替换运算符将在某个时刻消失,那么这些库会更改为 '{}'.format() 语法吗?

最佳答案

是的,argparseConfigParser 库在内部使用旧式 % 字符串格式化语法。这些库是在 str.format()format() 可用之前开发的,或者在 argparse 的情况下,库作者旨在实现兼容性使用早期的 Python 版本。

如果 % 格式被删除,那么这些库确实必须转而使用使用 {} 占位符的字符串格式。

但是,由于各种原因,% 旧式字符串格式样式在可预见的 future 仍将继续存在;它已被“未弃用”; str.format() 是首选,但保留 % 是为了向后兼容。

关于python - argparse 和 ConfigParser 字符串替换语法从何而来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18128391/

相关文章:

python - 使用 Pandas 导入每行具有不同列数的 csv

python - OpenCV:将多边形映射到矩形

python - 解析器.add_argument : error: unrecognized arguments: True

Python - docopt 和 argparse 之间的区别

python - Configparser 偶尔返回空结果

python - Python 3 中的 configparser 中的 read 和 read_file 有什么区别?

Python - 解析INI文本(不是INI文件)

python - 使用 REST API python 将页面 blob 上传到 azure

python - Anaconda ImportError : libSM. so.6: 无法打开共享对象文件: 没有那个文件或目录

python - 也可以作为命令行脚本运行的包结构