我正在尝试编写一个try / except块,它声明了两个通过ConfigParser检索其值的变量.我遇到的问题是,声明的一个或两个值可能不存在于特定部分下,并且在这种情况下应该设置为None.我知道我可以简单地将值添加到每个配置文件中,但是,并非所有配置在部分名称中都是一致的,这变成了一项非常繁琐的任务.
有没有更好的方法来实现以下try / except块而不将它们分成两个独立的块?
try:
ports = getCfgStr(sectName, 'ports')
terminal = getCfgStr(sectName, 'terminals')
except KeyError:
# Need to set ports or terminal to None depending on which raised the KeyError
我的解决方案:
try:
ports = getCfgStr(sectName, 'ports')
except KeyError:
ports = None
try:
terminals = getCfgStr(sectName, 'terminals')
except KeyError:
terminals = None
最佳答案 有趣的问题!
这个怎么样:
def lookup(param):
try:
return getCfgStr(sectName, param)
except KeyError:
return None
ports = lookup('ports')
terminal = lookup('terminals')