私はいくつかのコードをテストしていました
True = 2
print 1 - (1 == 1)
print True == (1 == 1)
それから私は期待していました:
-1
True
しかし、代わりにこれを得ました:
0
False
そこで、Python プログラマーなら誰でもすること、つまり逆アセンブルを行いました。
def f():
True = 2
print 1 - (1 == 1)
print True == (1 == 1)
2 0 LOAD_CONST 1 (2)
3 STORE_FAST 0 (True)
3 6 LOAD_CONST 2 (1)
9 LOAD_CONST 2 (1)
12 LOAD_CONST 2 (1)
15 COMPARE_OP 2 (==)
18 BINARY_SUBTRACT
19 PRINT_ITEM
20 PRINT_NEWLINE
4 21 LOAD_FAST 0 (True)
24 LOAD_CONST 2 (1)
27 LOAD_CONST 2 (1)
30 COMPARE_OP 2 (==)
33 COMPARE_OP 2 (==)
36 PRINT_ITEM
37 PRINT_NEWLINE
38 LOAD_CONST 0 (None)
41 RETURN_VALUE
それから、それは少し明確でしたCOMPARE_OP (==)
. Witch はブール値を返す必要がありますが、代わりに整数を返すようです。理由はありますか?
編集:
つまり、学んだ教訓は次のとおりです。True または False の値を変更しても、ブール論理が舞台裏でどのように表現されるかは変わりません。