这是一种非常不同的编程风格,但是我总是尝试重写看起来像
bar = None
if foo():
bar = "Baz"
if bar is None:
bar = "Quux"
变成:
if foo():
bar = "Baz"
else:
bar = "Quux"
就是说,我尽力避免某些代码路径定义变量而其他代码没有定义变量的情况。在我的代码中,永远不会有导致定义的变量集模糊的路径(实际上,我通常会更进一步,并确保无论代码路径如何,类型 都是相同的)。这可能只是个人喜好,但我发现了这种模式,尽管在编写时不太明显,但在以后阅读时更容易理解。