标签: python dictionary
以下代码使用if ... and ...:是否安全,即我们是否确定首先测试第一个条件,如果密钥不存在,则忽略第二个条件?
if ... and ...:
d = {'a': 1} if 'b' in d and d['b'] == 2: print 'hello'
似乎是的,因为这不会产生任何错误。但是对于所有Python版本都是如此吗?
它永远不会生成KeyError: 'b'吗?
KeyError: 'b'
if 'b' in d: if d['b'] == 2: ...
答案 0 :(得分:2)
是的,它被称为短路和。
python2(Link to the doc)和python3.x(Link to the doc)都支持短路and和or
and
or