Python风格:if语句与布尔评估

Mik*_*aig 7 python if-statement coding-style

Python设计理念的一个想法是"应该有一个......明显的方法来实现它".(PEP 20),但这并非总是如此.我特别指的是(简单)if语句与布尔评估.考虑以下:

if words:
    self.words = words
else:
    self.words = {}
Run Code Online (Sandbox Code Playgroud)

self.words = words or {}
Run Code Online (Sandbox Code Playgroud)

在这样一个简单的情况下,从风格上说,这是更可取的吗?对于更复杂的情况,可以选择if语句以获得可读性,对吧?

Ale*_*lli 9

" 应该只有一个"完全可以永远是真的; 它的积极主张"有只有一个"不能是- "应该"表示一个目标,一个目标,而不是总是达到它(例如,用于数字的可能性ab,禁止任何b + aa + b会如此荒谬的存在就是不能在这种情况下明智地"只有一种方式").

在你的例子中,我同意or在足够简单的情况下这是优选的(在一条清晰可读的行中可以做的四条线是浪费垂直空间)但不是任何显着复杂性的谓词.当然,决定具有"重大复杂性"的是一种判断.