我正在使用Python的ConfigParser来创建配置文件。我想检查某个部分是否定义了特定选项,如果有,则获取该值。如果没有定义选项,我只想继续没有任何特殊行为。似乎有两种方法可以做到这一点。
if config.has_option('Options', 'myoption'):
OPTION = config.get('Options', 'myoption')
或者:
try:
OPTION = config.get('Options', 'myoption')
except ConfigParser.NoOptionError:
pass
一种方法优于另一种吗? if
涉及较少的行,但我偶尔会读到try
/ except
在许多情况下被认为更加pythonic。
答案 0 :(得分:28)
try / except和if-condition之间的选择是模糊的。
没有明显优越的选择,但听起来你有一个案例(2)所以我选择if / then。这完全忽略了易于要求宽恕而不是许可的方面以及结构的相对效率。