実際にxorは解決策が必要でしたが、考えているうちに上記の質問について疑問に思い始めました。とはどういう意味True == True != Falseですか?
ドキュメントを見るとTrue == True and True != Falseだと思いますが、より一般的で確実なアプローチが必要です。そのようなコードの読み取り可能な形式のバイトコードをすばやく取得するにはどうすればよいですか。バイトコードとドキュメントの両方よりも簡単に見つける方法はありますか?
実際にxorは解決策が必要でしたが、考えているうちに上記の質問について疑問に思い始めました。とはどういう意味True == True != Falseですか?
ドキュメントを見るとTrue == True and True != Falseだと思いますが、より一般的で確実なアプローチが必要です。そのようなコードの読み取り可能な形式のバイトコードをすばやく取得するにはどうすればよいですか。バイトコードとドキュメントの両方よりも簡単に見つける方法はありますか?
ほとんどの言語で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 の意味と他の言語の意味) はここで同じ結果をもたらしますが、注意が必要です。