Python isinstance()
1. 描述
isinstance()
用来判断一个对象是否是已知的类型,类似type()
。
isinstance() 与 type() 区别:
- type() 不会认为子类是父类类型,不考虑继承关系。
- isinstance() 认为子类是父类类型,考虑继承关系。
如果判断两个类型是否相同推荐使用isinstance()
。
2. 语法
isinstance(object, classinfo)
参数
- object:实例对象
- classinfo:类名、基本数据类型、或它们组成的元组。
返回值
布尔型
3. 实例
a = 2
print(isinstance(a, int))
print(isinstance(a, str))
print(isinstance(a, (str, int, list)))
结果:
True
False
True
class A:
pass
class B(A):
pass
print(isinstance(A(), A)) # returns True (A对象是不是A类型)
print(type(A()) == A) # returns True
print(isinstance(B(), A)) # returns True (B对象是不是A类型)
print(type(B()) == A) # returns False
结果:
True
True
True
False