isinstance() 函数来判断一个对象是否是一个已知的类型,比如:
isinstance(2,int)
- 1
因为2是int整型,函数将会返回True.
instance()函数的语法形式为:
isinstance(object, classinfo)
- 1
两个参数表示的意思为:
object – 实例对象,就相当于刚才例子中的2.
classinfo – 可以是直接或间接类名、基本类型或者由它们组成的元组。
返回值:如果对象的类型与参数二的类型(classinfo)相同则返回 True,否则返回 False。
这里给出一个例子:
>>>a = 2
>>> isinstance (a,int)
True
>>> isinstance (a,str)
False
>>> isinstance (a,(str,int,list)) # 是元组中的一个返回 True
True
- 1
- 2
- 3
- 4
- 5
- 6
- 7
可以看出isinstance()函数和type()函数很类似。但是两者又有区别,type() 不会认为子类是一种父类类型,不考虑继承关系。isinstance() 会认为子类是一种父类类型,考虑继承关系。
如果要判断两个类型是否相同推荐使用 isinstance()。
这里给出两个函数区别的示例:
class A:
pass
class B(A):
pass
isinstance(A(), A) # returns True
type(A()) == A # returns True
isinstance(B(), A) # returns True
type(B()) == A # returns False
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10