Python类型判断type()与isinstance()的区别

一.type()与isinstance()的定义

  • type():返回一个对象的类型,忽略子类
  • isinstance():判断一个对象是不是已知类型的实例或者子类

二.type()与isinstance()的区别

  type() isinstance()
主要应用 用于获取未知变量的类型 用于判断A类是否继承于B类
继承判断 无法判断 可以判断子类对象是否继承于父类

 

三.type()与isinstance()的具体应用实例

1. isinstance判断类继承

class Person:  # 定义一个父类
    pass


class Chinese(Person):  # 定义一个子类, 继承Person类
    pass


chinese = Chinese()
# chinese继承了Person,显然也是Person的实例
print(isinstance(chinese, Person))  # True
# chinese显然是Chinese的实例
print(isinstance(chinese, Chinese))  # True

2. type判断类型

class Person:  # 定义一个父类
    pass


class Chinese(Person):  # 定义一个子类, 继承Person类
    pass


# type判断chinese的类型显然是Chinese
print(type(chinese) is Chinese)  # True
# type判断chinese的类型,显然不是Person
print(type(chinese) is Person)  # False