我見過人們經常推薦使用isinstance()而不是type(),我發現它很奇怪,因爲type()對我來說似乎更易讀。爲什麼使用isinstance()而不是type()?
>>> isinstance("String",str)
True
>>> type("String") is str
True
後者似乎更Python和清晰而前者稍模糊,並暗示特定的用途,我(例如,測試用戶創建的類,而不是內建類型),但那裏,我一些其他的好處米不知道? type()是否會導致一些不穩定的行爲或錯過一些比較?
記得文檔解釋爲什麼要使用'isinstance'。我需要時間去尋找。 –
如果你想知道更多,'polymorphish'是一個關鍵字。 –
請注意,最Pythonic的方法是把它看作*如果*是一個字符串(或更一般的東西,例如一個序列),並且(可選)從錯誤中恢復。我偶爾使用'isinstance(whatever,basestr)',我需要*將字符串與其他序列區分開來,但是否則它有什麼關係? – jonrsharpe