2016-12-06 43 views

回答

1

在此上下文中,“协议”是API。 “断路”可能更容易被另一个短语“短路”所理解。如:

if text is None or not text.startswith("lorem"): 
    raise RuntimeError("text should exist and start with 'lorem'") 

由于text.startswith()是唯一有效的代码,如果textNone,上面的代码“短路”使用or运算符,它不打扰,如果左边是评价右手参数真正。类似地,如果左手为假(因为结果必须是假的),则and运算符会短路。

所以这个PEP的目的是为了增强建筑表达的设施,这些设施可以以更复杂的方式短路。

+0

感谢John给出了很好的答案。我认为在你的声明“因为text.startswith()只是有效的代码,如果文本不是无”,你的意思是说“...如果文本是无”(删除“不”)? – Simplicity

+0

@简单:不,我写的是正确的。如果文字为None,则无法对其进行操作。 –