Python如果那么从Dicts获取值时的Else样式

Sco*_*ttZ 5 python syntax if-statement

我经常讨论下面的if/else语法,我希望有些人可以给我一些关于他们认为更清楚或者是否违反任何Pythonism(我已经搜索过并且无法找到任何东西)的意见).

其中一个更好还是对/错?

value = None
if 'value' in some_dict:
  value = some_dict['value']

some_func(value=value)
Run Code Online (Sandbox Code Playgroud)

要么:

if 'value' in some_dict:
  value = some_dict['value']
else:
  value = None

some_func(value=value)
Run Code Online (Sandbox Code Playgroud)

要么:

some_func(value=some_dict.get('value', None))
Run Code Online (Sandbox Code Playgroud)

我可以看到所有的原因.

Rom*_*huk 8

当然最后一个是最好的 - 描述的情况是确切的情况dict.get.

只是一个注释 - 第二个参数get是多余的,你可以简单地写:

some_func(value=some_dict.get('value'))
Run Code Online (Sandbox Code Playgroud)