Python ConfigParser:检查选项是否存在

2024-03-08

我正在使用 Python 的 ConfigParser 来创建配置文件。我想检查某个部分是否定义了特定选项,如果有,则获取该值。如果未定义该选项,我只想继续而不进行任何特殊行为。似乎有两种方法可以做到这一点。

if config.has_option('Options', 'myoption'):
    OPTION = config.get('Options', 'myoption')

Or:

try:
    OPTION = config.get('Options', 'myoption')
except ConfigParser.NoOptionError:
    pass

一种方法优于另一种方法吗?这if涉及的行数较少,但我偶尔会读到try/except在很多情况下被认为更Pythonic。


try/ except 和 if-condition 之间的选择是一条模糊线。

  1. 如果您预计异常很少见,请使用 try/ except,因为它更接近地模拟思维
  2. 相反,“预期”异常(例如配置项丢失)是正常控制流的一部分,代码应该反映这一点。

没有明显更好的选择,但听起来你有 (2) 的情况,所以我会选择 if/then。这完全忽略了“更容易请求宽恕而不是许可”以及结构的相对效率。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python ConfigParser:检查选项是否存在 的相关文章

随机推荐