ConfigParser是备受争议的 Python 原生配置解析器。
但是,您可以简单地import config
在哪里config.py
设置配置参数的 python 代码。
这两种配置方法的优缺点是什么?我应该什么时候选择每个?
ConfigParser是备受争议的 Python 原生配置解析器。
但是,您可以简单地import config
在哪里config.py
设置配置参数的 python 代码。
这两种配置方法的优缺点是什么?我应该什么时候选择每个?
我看到的最大问题import config
是您不知道导入它时会发生什么。.
是的,您将获得一组使用样式界面自然引用的符号。但是配置文件中的代码也可以做who-knows-what。现在,如果您完全信任您的用户,那么允许他们在配置文件中做他们想做的任何事情可能是一件好事。但是,如果您的数量未知,或者您想保护用户免受自己的侵害,那么拥有更传统格式的配置文件会更安全。
这完全取决于您对脚本的需求和目标。一种方式真的不是“更好”,只是不同。有关大多数 python 配置解析器(包括ConfigParser
和config
模块)的非常详细的讨论,请参阅:
“导入配置”非常简单、灵活且功能强大,但由于它可以做任何事情,如果 config.py 不在安全的地方可能会很危险。
IMO 归结为个人风格问题。您是否打算让第 3 方编辑您的配置?如果是这样,也许有一个更“自然”的配置风格是有意义的,ConfigParser
因为它不是技术性的,并且可能不会超出你的目标受众的头脑。
许多流行的项目,例如Fabric和Django使用“本机”配置样式,它本质上只是一个 Python 模块。Fabry 有fabfile.py
,Django 有settings.py
.
总体而言,使用本机方法导入模块将具有更大的灵活性,因为您可以在该文件中做任何您想做的事情,包括定义函数、类等,因为它只是您要导入的另一个 Python 模块.