我经常讨论下面的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)
我可以看到所有的原因.
有时我有一个我想要默认的变量,如果设置了其他东西,则将其更改为其他内容.
问题是.什么是首选?设置默认值,然后在满足条件时更改它,或者根据初始检查设置条件一次,添加其他值?
代码示例.
if x:
y = '%s-other' % x
else:
y = 'some_default'
Run Code Online (Sandbox Code Playgroud)
另一种选择是.
y = 'some_default'
if x:
y = '%s-other' % x
Run Code Online (Sandbox Code Playgroud)
这并不总是传递给函数的参数,所以kwargs不是我想要依赖的东西.
就个人而言,第二个似乎对我来说更清楚,但我还没有找到任何人对此的任何意见.