gpt4 book ai didi

Python:变量 "tricking"try-exception,但适用于 if 语句

转载 作者:太空宇宙 更新时间:2023-11-03 18:57:29 26 4
gpt4 key购买 nike

我知道这个标题看起来很疯狂,但这是事实。这是我的困境。首先,我还是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。

最佳答案

一些事情:

  • 这不应该引发异常!您在两个地方执行 name['foo'] 并期望不同的行为。

  • name 的行为不像字典,如果是的话,在第一个示例中您将不会得到 False 的返回,您会得到一个异常(exception)。尝试这样做:

    name = {}
    name['foo']

    然后你会得到一个 KeyError 异常

  • 永远不要有 except: block !始终捕获您要处理的特定异常,例如 IndexError 或其他

关于Python:变量 "tricking"try-exception,但适用于 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16943179/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com