菜鸟笔记
提升您的技术认知

python中的isinstance()函数-ag真人游戏

1. 描述

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

2. 语法

isinstance(object,classinfo)

参数:

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

返回值:如果对象的类型与参数二的类型(classinfo)相同则返回 true,否则返回 false。

3. 实例

以下是使用isinstance()函数的实例:

a = 2
isinstance(a,int)      # 结果返回 true
isinstance(a,str)      # 结果返回 false
isinstance(a,(str,int,list))      # 是元组中的一个,结果返回 true

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

网站地图