Python の True, False は変数みたいなものであるのは有名。
True が 1、False が 0 な整数という解釈でいいのかな。
>>>True + True 2 >>>True + False 1
まてよ、IronPython ではどうなのかな?
CTS により .NET の型にマッピングされなければいけないはずなんだが。
と思ったので少し試したけど整数等と同じ、つまり普段は Python の型である。
clr か System を import すると「どっちでもいい」オブジェクトに変身する。
>>>import System >>>System.Boolean.Parse("true") == True True >>>True + True + True 3
又、変数?なので
>>> True = "abcde" >>> True 'abcde' >>> True + True 'abcdeabcde' >>> System.Boolean.Parse("true") == True False >>> 2 == 2 True
真ならやはり True が戻ってくるけど中身は文字列というワケワカなことにも。
ま、普通は True や False に代入するはずがないから気にしなくてもいいんだが。
ついでに、どこかで null は IntPtr.Zero だとか見かけたけど
全然違う、None で大抵イケるはずだが None のマッピングは何だろう?