2013-10-08 114 views
0

有哪些bool()功能無效值無效值?我的意思是哪些參數讓它拋出異常?蟒蛇 - 爲布爾

據我所知,任何自定義的數據結構True和空單,空字符串等都是假的。

那麼,有沒有爲bool參數,使其返回比「真」或「假」以外的任何值?

回答

3

不,bool()只能返回TrueFalse所有的Python值具有布爾意義。

如果該值不是空容器,則數字0,NoneFalsebool()返回True

注意bool()將使用__len____nonzero__(Python的2)和__bool__(Python 3中)的特殊方法如果存在的話;如果這些拋出異常bool()將無法​​捕捉它。

+0

,我能想到的把我的頭頂部有一個異常拋出'__nonzero__'唯一有點常見的類型是'numpy.ndarray'。 – mgilson

+0

@mgilson:這樣是不對的Martijn說,「所有的Python值具有布爾意思」,或者是numpy的作者錯誤的說法,「一個數組的真值與一個以上的元素是曖昧」?或者(正如我懷疑的那樣)是這個問題在我們的薪酬等級之上的答案? ;-) –

+0

@SteveJessop:Python覺得所有的值都有一個布爾值; 'numpy'正確地使用異常來表示不應該詢問某個值的問題。 –