2016-10-28 348 views
-2
>>> True + 2 
    3 
>>> False + 2 
    2 

我可以理解,不知何故,True表示1,False表示0。所以 是否意味着,布爾和整數運算總是給出一個整數?爲什麼是True + 2,3或False + 2,2

+3

是的。將一個布爾值添加到一個int會產生一個int,因爲在Python中爲'True == 1'和'False == 0'。 – khelwood

回答

3

在蟒boolint一個子類,並且爲此滿足"is-a"關係,這意味着一個bool是-一個INT

爲了證明:

issubclass(bool, int) 
=> True 
isinstance(True, int) 
=> True 

在實踐中,這意味着,在其中對一個int工作的任何操作中,INT可以用布爾取代。

相關問題