isinstance(object, classinfo)

如果 object 实参是 classinfo 实参的实例,或者是(直接、间接或 虚拟)子类的实例,则返回 true。如果 object 不是给定类型的对象,函数始终返回 false。如果 classinfo 是对象类型(或多个递归元组)的元组,如果 object 是其中的任何一个的实例则返回 true。 如果 classinfo 既不是类型,也不是类型元组或类型的递归元组,那么会触发 TypeError 异常。

isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type()。
isinstance() 与 type() 区别:

  • type() 不会认为子类是一种父类类型,不考虑继承关系。
  • isinstance() 会认为子类是一种父类类型,考虑继承关系。

如果要判断两个类型是否相同推荐使用 isinstance()。

参数:

  • object — 实例对象。
  • classinfo — 可以是直接或间接类名、基本类型或者由它们组成的元组。

实例:

a = 2
print(isinstance(a, int))
print(isinstance(a, str))
# 是元组中的任意一个就返回True
print(isinstance(a, (str, int, list)))

以上代码输出结果为:

True
False
True

type() 与 isinstance()区别:
实例:

class A(object):
    pass


class B(A):
    pass


def main():
    print(isinstance(A(), A))
    print(type(A()) == A)
    print(isinstance(B(), A))
    print(type(B()) == A)


if __name__ == '__main__':
    main()

以上代码输出结果为:

True
True
True
False
0条评论

相关推荐

Python标准库——文本处理

对Python程序员来说,最显而易见的文本处理工具就是str类,不过除此以...

标准库 2019-05-25 16:30:08

Collections内置库

python collections内置库学习资料

标准库 2019-05-31 14:36:15

Python标准库——日期和时间

不同于int、float和str,Python 没有包含对应日期和时间的原...

标准库 2019-05-31 14:36:30

Python标准库——加密

加密可以保护消息安全,以便验证其正确性并保护消息不被截获。Python的加...

标准库 2019-06-03 10:21:54

Python标准库——文件系统

Python的标准库包括大量工具,可以处理文件系统中的文件,构造和解析文件...

标准库 2019-06-03 14:53:37