這里有兩種方法。type 和isinstance
import types aaa = 0 print type(aaa) if type(aaa) is types.IntType: print "the type of aaa is int" if isinstance(aaa,int): print "the type of aaa is int" bbb = 'hello' print type(bbb) if type(bbb) is types.StringType: print "the type of bbb is string" if isinstance(bbb,str): print "the type of bbb is string" #if the type is NoneType,the isinstance does not work #we should judge the NoneType like below #if row is None #if type(row) is types.NoneType #In my opinion,use the types to judge the type of a param is convinient<span style="font-family:Arial;background-color: rgb(255, 255, 255);">, use the isinstance to judge whether a instance is a type of a class or not</span>
一、isinstance()
在Python中可以使用type()與isinstance()這兩個函數判斷對象類型,而isinstance()函數的使用上比type更加方便。
1 # coding=utf-8 2 3 a = 10 4 5 def b(): 6 pass 7 8 print isinstance(a,(int,str)) 9 print isinstance(a,(float,str)) 10 print isinstance(b,(str,int)) 11 12 class c: 13 pass 14 15 obj = c() 16 17 print isinstance(obj,(c,int))
執行結果:
1 True 2 False 3 False 4 True
二、isinstance 和 type的區別
isinstance 和 type的區別在於:
1 class A: 2 pass 3 4 5 class B(A): 6 pass 7 8 isinstance(A(), A) # returns True 9 type(A()) == A # returns True 10 isinstance(B(), A) # returns True 11 type(B()) == A # returns False
區別就是 對於subclass之類的 type就不行了,所以,強烈建議不要使用type判斷對象類型。