-
type() 不会认为子类是一种父类类型,不考虑继承关系。
-
isinstance() 会认为子类是一种父类类型,考虑继承关系。
-
如果要判断两个类型是否相同推荐使用 isinstance()。
-
>>>a = "a"
-
>>> isinstance (a,int)
-
False
-
>>> isinstance (a,str)
-
True
-
>>> isinstance (a,(str,int,list)) # 是元组中的一个返回 True
-
True
-
type() 与 isinstance()区别:
-
class fun(): pass class fun2(fun): pass print(isinstance(fun(),fun)) # returns True print(type(fun()) == fun) # returns True print(isinstance(fun2(),fun)) # returns True print(type(fun2()) == fun()) # returns False