Python:isinstance()和type()

一、isinstance() 函数

isinstance() 函数是Python内置函数,判断一个对象是否是某个类或子类,返回True或False

语法:
isinstance(object, classinfo) -> bool
Return whether an object is an instance of a class or of a subclass thereof.

  • object – 实例对象。
  • classinfo – 可以是直接或间接类名、基本类型或者由它们组成的元组。
    classinfo 可以是:int,float,bool,complex,str(不能写string),list,dict,set,tuple
    在这里插入图片描述

二、type()函数

type()函数是Python内置函数,得到传入的object的类型

type(object_or_name, bases, dict)
type(object) -> the object’s type
type(name, bases, dict) -> a new type

三、isinstance()与type() 区别

1、type只接收一个参数,不但可以判断变量是否属于某个类型,而且可以得到未知的参数变量所属的类型;而isinstance只能判断是否属于某个已知类型,不能直接得到变量未知的所属的类型
在这里插入图片描述
2、isinstance可以判断子类实例对象是属于父类的;而type会判断子类实例对象和父类类型不一样

class A:
    pass

class B(A):
    pass

print(isinstance(A(), A))  # True
print(type(A()) == A)  # True
print(isinstance(B(), A))  # True
print(type(B()) == A)  # False

综上,isinstance和type的应用场景是不同的:
- type主要用于获取未知变量的类型
- isinstance主要用于判断A类是否继承于B类

猜你喜欢

转载自blog.csdn.net/weixin_47008635/article/details/115047836
今日推荐