这里有两种方法。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判断对象类型。
来源:https://www.cnblogs.com/cofludy/p/6000930.html