Python 可以使用内联 elif 吗?
'Hello ' + ('there' if name is None else name)
这个和下面的意思一样:
msg = 'Hello '
if name is None:
msg += 'there'
else:
msg += name
这个的意思是什么:
msg = 'Hello '
if name is None:
msg += 'there'
elif name == 'Mr Anderson'
msg += 'Neo'
else:
msg += name
编辑:这里是我想要简化的代码,供参考
srepr = '\'Modify '
if self.register == 'p':
srepr += 'Pointer'
elif self.register == 'v':
srepr += 'Value'
else
srepr += 'Unknown'
srepr += ' By ' + str(self.delta) + '\''
7 个回答
7
msg = 'Hello ' + (
'there' if name is None else
'Neo' if name == 'Mr Anderson' else
name
)
这段话是对其他几个回答的重复,但格式更好看。我觉得这样更容易阅读,这也是我会采用的方法。
8
使用字典来进行映射:
srepr = "'Modify " + {"p": "Pointer", "v": "value"}.get(self.register, "Unknown")
顺便说一下,使用 '\'...'
的时候,你可以用 "'...
来让代码看起来更清晰一些。
36
msg = "Hi " + ("there" if not name else ("Neo" if name == "Anderson" else name))
我觉得那样看起来挺难懂的。