Python 变量类型判断 isinstance type
可以使用isinstance() 或 type() 两个内置函数,来判断变量引用的对象,是否属于某一类型。
isinstance()和type()的区别:
-
type() : 只返回对象的类型名称,不会认为子类是一种父类类型,不考虑继承关系。
-
isinstance() :会判断对象是否属于该类型或其子类,会认为子类是一种父类类型,考虑继承关系。
1. isinstance(obj_var, class_name)
-
参数:
-
参数1,变量名
-
参数2,类名或多个类名组成的元组
-
-
输出:
-
True,变量引用的对象,属于后面的某个类,或其子类
-
False,变量引用的对象,部署于后面的任意一个类或其子类
-
u = 1; isinstance(u,int) #True
u = 1.0; isinstance(u,int) #False
u = 1.0; isinstance(u,float) #False
u = ''; isinstance(u,str) #True
u = []; isinstance(u,list) #True
u = (); isinstance(u,tuple) #True
u = {}; isinstance(u,dict) #True
u = set(); isinstance(u,set) #True
2. if type(obj_var) == type("abc")
-
原理:用type(var)返回的对象类型,与type('')已知对象类型比较,判断类型是否一致
u = 1; type(u) == type(2) #True
u = 1.0; type(u) == type(2.0) #False
u = 1.0; type(u) == type(2) #False
u = ''; type(u) == type('a') #True
u = []; type(u) == type([1,2,3]) #True
u = (); type(u) == type((1,2,3)) #True
u = {}; type(u) == type({a:1,b:2}) #True
u = set(); type(u) == type({1,2}) #True