查看: 92|回覆: 0

python中isinstance函数

[複製鏈接]

2

主題

0

回帖

0

積分

热心网友

金币
0
閲讀權限
220
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2009-2-17
發表於 2019-12-19 15:53:00 | 顯示全部樓層 |閲讀模式

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)     # return True

type(A()) == A         # return True

isinstance(B(),A)    # return True

Type(B())  == A      # return False

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

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



来源:https://www.cnblogs.com/medigrat/p/12068263.html
回覆

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即注册

本版積分規則

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部