一、isinstance() 函数
isinstance() 函数是Python内置函数,判断一个对象是否是某个类或子类,返回True或False
语法:
isinstance(object, classinfo) -> bool
Return whether an object is an instance of a class or of a subclass thereof.
- object – 实例对象。
- classinfo – 可以是直接或间接类名、基本类型或者由它们组成的元组。
classinfo 可以是:int,float,bool,complex,str(不能写string),list,dict,set,tuple
二、type()函数
type()函数是Python内置函数,得到传入的object的类型
type(object_or_name, bases, dict)
type(object) -> the object’s type
type(name, bases, dict) -> a new type
三、isinstance()与type() 区别
1、type只接收一个参数,不但可以判断变量是否属于某个类型,而且可以得到未知的参数变量所属的类型;而isinstance只能判断是否属于某个已知类型,不能直接得到变量未知的所属的类型
2、isinstance可以判断子类实例对象是属于父类的;而type会判断子类实例对象和父类类型不一样
class A:
pass
class B(A):
pass
print(isinstance(A(), A)) # True
print(type(A()) == A) # True
print(isinstance(B(), A)) # True
print(type(B()) == A) # False
综上,isinstance和type的应用场景是不同的:
- type主要用于获取未知变量的类型
- isinstance主要用于判断A类是否继承于B类