python中isinstance()用法
isinstance()用来判断一个对象是否是一个已知的类型,isinstance()函数的语法如下:
isinstance(object,classtype)
- object -- 实例对象。
- classtype -- 可以是直接或间接类名、基本类型或者由它们组成的元组。
isinstance()函数的返回值是布尔型,若object的类型是classtype,那么就返回True,否则返回False。
示例代码1:
a = 'hello' print(isinstance(a,str))
打印结果:
True
示例代码2:
b =[ 'hello bruce'] if isintance(b,str): print('我是bruce') elif isinstance(b,list): print('我不是bruce') else: print('我啥都不是!')
打印结果:
我不是bruce
示例代码3:
以元组形式:
a = 'str' b = {'name':'bruce'} ret1 = isinstance(a,(str,list,int)) print(ret1) ret2 = isinstance(b,(str,list,int)) print(ret2)
打印结果:
True
False
示例代码4:
class A(object): pass class B(A): pass a = A() ret1 = isinstance(a,A) print(ret1) # True print(type(a) == A) # True b = B() ret2 = isinstance(b,A) print(ret2) # True print(type(b) == A) # False
综上,注意:
isinstance() 与 type() 区别: type() 不会认为子类是一种父类类型,不考虑继承关系。 isinstance() 会认为子类是一种父类类型,考虑继承关系。 如果要判断两个类型是否相同推荐使用 isinstance()。