4

実際にxorは解決策が必要でしたが、考えているうちに上記の質問について疑問に思い始めました。とはどういう意味True == True != Falseですか?

ドキュメントを見るとTrue == True and True != Falseだと思いますが、より一般的で確実なアプローチが必要です。そのようなコードの読み取り可能な形式のバイトコードをすばやく取得するにはどうすればよいですか。バイトコードとドキュメントの両方よりも簡単に見つける方法はありますか?

4

2 に答える 2

5

ほとんどの言語でa == b != cは、 として解析され(a == b) != cます。したがって、これは と評価されTrue == True != False、は と評価されます。(True == True) != FalseTrue != FalseTrue

ここで見られるように、Python には別の意味があります。

>>> True != False != False
False
>>> (True != False) != False
True

Python では、a == b != cに相当し(a == b) and (b != c)ます。これは、True == True != Falseが と同等であることを意味し、 は(True == True) and (True != False)に評価されTrue and True、 は に評価されTrueます。

偶然にも、両方の意味 (Python の意味と他の言語の意味) はここで同じ結果をもたらしますが、注意が必要です。

于 2013-08-30T08:41:36.710 に答える