用type()這種判斷變量的方法,結果被鄙視了,不知所以然。>>> n = 911>>> type(n)
<type 'int'>>>> type(n) is intTrue
2 回答

天涯盡頭無女友
TA貢獻1831條經驗 獲得超9個贊
實際上還有一種方法是用isinstance
比如:
a = 111isinstance(a, int)True
isinstance 和 type的區別在于:
class A: passclass B(A): passisinstance(A(), A) # returns Truetype(A()) == A # returns Trueisinstance(B(), A) # returns Truetype(B()) == A # returns False
區別就是 對于subclass之類的 type就不行事了

開心每一天1111
TA貢獻1836條經驗 獲得超13個贊
1、type可以只接收一個參數,打印其未知的所屬的類型;而isinstance只能判斷是否屬于某個已知類型,所以,isinstance效率更高一些
2、isinstance可以判斷子類對象是否繼承于父類;而type不可以,type只能把類對象識別為instance實例類型,即老式類都是通過instance創建的
所以,type主要用于獲取未知變量的類型,isinstance主要用于判斷A類是否繼承于B類
添加回答
舉報
0/150
提交
取消