2016-12-06 46 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,則無法對其進行操作。 –