Python中得isinstance()函数

一.解释:

        isinstance()函数是类似于type()函数的python内置函数,用来判断一个函数是否是一个已知的类型。

二.用法:

 isinstance(object,classinfo)

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

返回值:如果参数一的类型和参数二的类型一致,返回True,否则返回False。

三.实例:

a = 2.0
 
print(isinstance(a,int))
print(isinstance(a,float))
print(isinstance(a,(str, int, list, float)))

================================================
False    # a是float类型,并非int类型,结果返回False
True     # a是float类型,结果返回True
True     # 是元组中的一个,结果返回 True

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

  • isinstance() 会认为子类是一种父类类型,考虑继承关系。
  • type() 不会认为子类是一种父类类型,不考虑继承关系。
 
class A:
    pass
 
class B(A):
    pass
 
isinstance(A(), A)    # returns True
type(A()) == A        # returns True
isinstance(B(), A)    # returns True
type(B()) == A        # returns False

这时会发现,创建一个A对象,再创建一个继承A对象的B对象,使用 isinstance() 和 type() 来比较 A() 和 A 时,由于它们的类型都是一样的,所以都返回了 True。而B对象继承于A对象,在使用isinstance()函数来比较 B() 和 A 时,由于考虑了继承关系,所以返回了 True,使用 type() 函数来比较 B() 和 A 时,不会考虑 B() 继承自哪里,所以返回了 False。

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

猜你喜欢

转载自blog.csdn.net/m0_62278731/article/details/132687318