dict.get('..',None)或None的情况是什么?

10 python python-3.x

如果在一些开源库中找到以下代码:

message.get('title', None) or None
Run Code Online (Sandbox Code Playgroud)

有没有理由这样做而不是message.get('title', None)

mgi*_*son 20

这将保证任何falsy值(例如None,'',0,False,[]在快译通,...)会变成None.即如果你有

d = {'title': False}
Run Code Online (Sandbox Code Playgroud)

然后

d.get('title', None)  # False
d.get('title', None) or None  # None
Run Code Online (Sandbox Code Playgroud)

是否有一个实际的用例是有争议的,但肯定有一个微妙的区别......


另请注意,您可以将其简化为:

d.get('title') or None
Run Code Online (Sandbox Code Playgroud)

因为如果没有找到元素,则d.get默认返回None.