[Python基础]BIF之类型判断isinstance()
描述
isinstance()函数来判断一个对象是否是一个已知的类型,类似type()
与type()的区别
- type()不会认为子类是一种父类类型,不考虑继承关系
- isinstance()会认为子类是一种父类类型,考虑继承关系
如果要判断两个类型是否相同推荐使用isinstance()
语法
isinstance(object, classinfo)
参数
- object:实例对象
- classinfo:可以是直接或间接类名、基本类型或者由它们组成的元组
返回值
如果对象的类型与参数二的类型(classinfo)相同则返回True,否则返回False
实例
a = 2
print(isinstance(a, int)) # T
print(isinstance(a, str)) # F
print(isinstance(a, (str, int, list))) # T,a是元组内的其中一个类型就会返回True
与type()的区别
class A:
pass
class B(A): # B对象继承A对象
pass
print(isinstance(A(), A)) # T
print(type(A()) == A) # T
print(isinstance(B(), A)) # T
print(type(B()) == A) # F