python中isinstance()用法

发布时间 2023-04-05 13:15:28作者: 一先生94

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()。