我想不通爲什麼:爲什麼Python中的函數是錯誤的?
f = lambda x: x
In [8]: f is True
Out[8]: False
In [9]: not f is True
Out[9]: True
In [10]: f is False
Out[10]: False
In [11]: f is True
Out[11]: False
In [12]: not f
Out[12]: False
In [13]: not f is True
Out[13]: True
In [14]: not f is False
Out[14]: True
確定。所以直到現在我們可以想象這是由於使用「is」而不是「==」。如下所示:
In [15]: 0.00000 is 0
Out[15]: False
In [16]: 0.00000 == 0
Out[16]: True
好的。但是,爲什麼那麼,如果我做它的功能:
In [17]: not f == False
Out[17]: True
In [18]: not f == True
Out[18]: True
In [19]: f ==True
Out[19]: False
In [20]: f ==False
Out[20]: False
In [21]: f
Out[21]: <function __main__.<lambda>>
我試圖把它解釋爲因「是」,而不是「==」的例子,但19和20粉碎了我的邏輯。有人可以解釋嗎?
這是特定的功能呢?其他值與True和False相比如何? –
awww很愚蠢。忘了使用bool()比較布爾值。當然 。請刪除 – deddu