我知道这个标题看起来很疯狂,但这是真的。这是我的困境。首先,我仍然是 Python 的初学者,所以请体谅。我正在尝试测试变量是否存在。现在变量来自一个用 yaml 解析的文件。每当我尝试这段代码时,
if not name['foo']:
print "No name given."
return False
Python 会按照您的预期执行并返回 false。但是,当我尝试将其更改为此代码时,
try:
name['foo']
except:
print "ERROR: No name given."
raise
永远不会出现例外。我已经搜索和搜索,找不到任何可以向我解释这一点的问题或网站。我唯一的想法是解析器正在“欺骗”异常处理程序,但这对我来说真的没有意义。
我已确保我正在解析的文档的名称字段中没有空格。该字段具有以下格式:
*name: foo
*ver: bar
就像我说的那样,我确保 foo 以及行之间的任何空格都被完全删除。如果有人可以提供帮助,将不胜感激。
编辑:
我为 if 语句中的否定逻辑道歉。该功能必须经过一系列检查。我能想到的确保执行所有检查的最佳方法是在最后返回 true 并在任何单个检查失败时返回 false。