私はpyparsing
ライブラリのコードを参照しています。そこでは、私は次の断片を見つけました:このコードで `または`なしの目的は何ですか?
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
が得られます。
どちらの場合でも(偽またはなしで)if not result
は正しいことを行います。
なぜ、or None
を追加しますか?私は何が欠けていますか? None
がFalse
になるのはなぜですか?
@ MarkTolonenの提案によれば、私は[tag:pyparsing]でタグを付けて図書館の著者に尋ねました。 – Arkadiy