Python dict.get(';.';,None)或None的场景是什么?
如果在某些开源库中找到以下代码:Python dict.get(';.';,None)或None的场景是什么?,python,python-3.x,Python,Python 3.x,如果在某些开源库中找到以下代码: message.get('title', None) or None 有什么理由这样做而不是消息。get('title',None)?这将保证dict中的任何错误值(例如None,',0,False,[],…)将变为None。i、 如果你有 d = {'title': False} 然后 这是否有一个实际的用例是有争议的,但肯定有一个微妙的区别 还请注意,您可以将其简化为: d.get('title') or None 由于d.get默认情况下,如果未找
message.get('title', None) or None
有什么理由这样做而不是
消息。get('title',None)
?这将保证dict中的任何错误值(例如None
,'
,0
,False
,[]
,…)将变为None
。i、 如果你有
d = {'title': False}
然后
这是否有一个实际的用例是有争议的,但肯定有一个微妙的区别
还请注意,您可以将其简化为:
d.get('title') or None
由于d.get
默认情况下,如果未找到元素,则返回None
。这是有原因的
例如,message.get('title',None)或None
可能返回空字符串。Python中空字符串的布尔值为False
,因此将返回None
这也适用于从计算结果为False
的dict
返回的任何其他值<代码>无将被返回
注意:但是,该代码最好写成
message.get('title')或None
,因为默认情况下dict.get
返回None
(第二个参数)。如果您得到消息,并且它是一个false-y值,则会将其更改为None
比如说
message = {'title' : ''}
message.get('title', None)
>> ''
message.get('title', None) or None
>> None
.get(…,None)
中的None
实际上是多余的。不,它不会返回空字符串。fwiw,一个实际的用例是os.environ.get('VAR')或“some_default'
,这样$VAR=python…
将等效于not set。
message = {'title' : ''}
message.get('title', None)
>> ''
message.get('title', None) or None
>> None