至尊寶的傳說(shuō)
2023-04-14 18:14:18
用type()這種判斷變量的方法,結(jié)果被鄙視了,不知所以然。>>> n = 911>>> type(n)
<type 'int'>>>> type(n) is intTrue
2 回答

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

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