我一直在瀏覽pyparsing
庫的代碼。在那裏,我發現下面的代碼片段:這段代碼中`or None`的用途是什麼?
result = instring[loc] == self.firstQuoteChar and self.re.match(instring,loc) or None
if not result:
raise ParseException(instring, loc, self.errmsg, self)
loc = result.end()
ret = result.group()
熬下來多一些,我的result
的理解有:
result = firstCharacterIsCorrect(...) and self.re.match(...) or None
這是我不明白:爲什麼有or None
在那裏?
如果第一個字符不正確,沒有or None
,我們得到False
。如果它是正確的,但是正則表達式失敗,我們會從失敗的匹配中獲得None
。
無論哪種情況(帶有False或無)if not result
都會做正確的事情。
那麼爲什麼要加or None
?我錯過了什麼?爲什麼None
更可取爲False
?
正如@MarkTolonen建議的那樣,我用[tag:pyparsing]標記了問題以詢問圖書館的作者... – Arkadiy