python中isinstance函数

python中isinstance函数1、描述python中isinstance()函数,是python中的一个内置函数,用来判断一个函数是否是一个已知的类型,类似type()。2、语法isinstance(object,class

大家好,又见面了,我是你们的朋友全栈君。

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://javaforall.net/155905.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mysql insert into as_mysql insert into select使用方法详解

    mysql insert into as_mysql insert into select使用方法详解mysqlinsertintoselect使用方法详解2017-11-2215:47我们先来看看mysqlinsertintoselect的语法规则。INSERT[LOW_PRIORITY|HIGH_PRIORITY][IGNORE][INTO]tbl_name[(col_name[,col_name]…)]SELECT…[ONDUPLICATEKEY…

    2022年7月15日
    18
  • 知乎收藏数最高的1000个回答

    掃描了知乎兩千五百萬篇答案,統計出了“收藏數”最高的1000篇:同系列一:知乎收藏数最高的1000个回答-陈鹏举的文章-知乎专栏同系列二:知乎关注人数最高的1000个问题-陈鹏举的文章-知乎专栏同系列三:知乎关注人数最高的1000个收藏夾-陈鹏举的文章-知乎专栏同系列四:知乎关注人数最高的1000个專欄-陈鹏举的文章-知乎专栏哪些知识技能一定

    2022年4月9日
    64
  • 廖雪峰Python练习题

    廖雪峰Python练习题今天主要学习了python中filter的用法。Python内建的filter()函数主要用于过滤序列,和map()类似,filter()也接收一个函数和一个序列。和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。做了两道练习题,第一道是用filter求素数。第二道是用filter()筛选出回数。@Pyt…

    2025年7月20日
    4
  • qlineedit设置光标_光标选不中

    qlineedit设置光标_光标选不中QLineEdit的光标当失去焦点后仍然显示的问题:  在lineedit和其它按钮之间切换焦点时,注意lineedit的设置有顺序,否则当失去焦点时仍有光标闪,或者得到焦点无光标。  使lineedit有效:lineedit->setEnabled(true);lineedit->setFocus();    使lineedit无效:l…

    2022年10月5日
    2
  • oracle强化练习之分组函数[通俗易懂]

    oracle强化练习之分组函数

    2022年2月3日
    42
  • idea2021.11.3 激活【2021免费激活】

    (idea2021.11.3 激活)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月29日
    46

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号