这些方法之间有什么区别,不一致或缺点吗?
foo = dict(key=u"")
bar = foo.get('key', 'foobar')
Run Code Online (Sandbox Code Playgroud)
VS
foo = dict(key=u"")
bar = bool(foo['key']) or 'foobar'
Run Code Online (Sandbox Code Playgroud)
第一段代码尝试从foo与 关联中获取一个值key,如果foo没有键key,则默认为foobar。所以这里有两种情况:
foo有钥匙key,所以bar设置为foo[key]foo没有钥匙key,所以bar设置为"foobar"第二着眼于值与键相关联key的foo,并且如果该值是falsy(即,如果bool(foo[key])==False),则默认为foobar。如果foo没有密钥,key它会引发一个KeyError. 所以这里有三种情况:
foo有键key, 和bool(foo[key])==True, 所以bar设置为Truefoo有键key, 和bool(foo[key])==False, 所以bar设置为"foobar"foo没有钥匙key,所以代码引发了KeyError| 归档时间: |
|
| 查看次数: |
2894 次 |
| 最近记录: |