当前位置: 首页 > news >正文

Python内置函数isinstance()函数介绍

Python内置函数isinstance()函数介绍

isinstance() 函数是Python内置函数,来判断一个对象是否是一个已知的类型,返回值为布尔值True或False。其语法格式:

isinstance(object, classinfo)

【官方说法https://docs.python.org/zh-cn/3/library/functions.html#isinstance 

如果 object 参数是 classinfo 参数的实例,或其(直接、间接或 virtual )子类的实例,则返回 True。 如果 object 不是给定类型的对象,则总是返回 False。如果 classinfo 是类型对象的元组(或由该类元组递归生成)或多个类型的 union 类型,那么当 object 是其中任一类型的实例时就会返回 True。如果 classinfo 不是某个类型或类型元组,将会触发 TypeError 异常。】

官方说法不好理解,下面解说之。

参数

object -- 实例对象,是要进行类型检查的对象。

classinfo -- 可以是直接或间接类名、基本类型或者由它们组成的元组。

对于基本类型来说 classinfo 可以是:int,float,bool,complex,str(字符串),list,dict(字典),set,tuple。classinfo参数也可以接由多个类型对象组成的元组作为参数,当classinfo参数为多个类型对象时,isinstance()函数会逐一检查每个类型对象,只要object属于其中任意一个类型,就返回True。

>>>a = 2 
>>> isinstance (a,int) 
True 
>>> isinstance (a,str) 
False 
>>> isinstance (a,(str,int,list)) # 是元组中的一个返回 True
True

isinstance()函数也可以用于判断一个对象是否为某个类或其子类的实例。

下面是用于类的情况

# isinstance()函数用于类的示例
class Animal:passclass Dog(Animal):passclass Cat(Animal):passdog = Dog()
cat = Cat()print(isinstance(dog, Dog))     # 返回True, dog是Dog类的实例
print(isinstance(cat, Animal))  # 返回True, cat是Animal类的子类Cat的实例

在上面的例子中,isinstance()函数分别对dog和cat对象进行了类型检查,传入的classinfo参数分别为Dog和Animal,即可判断它们是否为这两个类的实例。

下面,再给出一个用于类的例子

class A:passclass B(A):passclass C:passprint(isinstance(A(), A))  # 返回:True
print(isinstance(B(), A))  # 返回:True
print(isinstance(C(), A))  # 返回:False

http://www.lryc.cn/news/92407.html

相关文章:

  • QxRibbon 知:搭建 CMake 构建环境
  • Spring框架-面试题核心概念
  • Tomcat部署及优化
  • C++/C按照时间命名保存bin文件
  • 面向多告警源,如何构建统一告警管理体系?
  • python 面向对象 -- 简单理解版
  • SpringMVC 程序开发
  • 使用单片机遇到的几个问题及解决方案1
  • vue项目中el-upload 组件添加token的方法
  • 独立按键检测短按、长按,松手后响应操作
  • BurpSuite2023测试越权漏洞
  • 申请国家标准项目管理专业人员能力评级(CSPM)报名条件有哪些?
  • 代码随想录算法训练营第五十二天|300.最长递增子序列|674. 最长连续递增序列|718. 最长重复子数组
  • 完全卸载mysql教程
  • 4G开发板-安卓手机开发套件-MTK主板开发板定制
  • 人工智能十大新星揭晓,华人学者占90%
  • ROS学习——通信机制(话题通信①—发布方实现)
  • 【运筹优化】最短路算法之SPFA算法 + Java代码实现
  • linuxOPS基础_linux权限管理
  • linux安装homeassistant(智能设备远程控制开源框架)
  • TensorRT Triton Inference Server: 版本 error魔术标记不匹配 , NGC使用
  • Elasticsearch 文本分析器(下)
  • Git操作方法
  • CorelDRAW矢量绘图2023中文版下载
  • Java-API简析_java.lang.Float类(基于 Latest JDK)(浅析源码)
  • pycharm的基本使用
  • 为什么要使用微软的 Application Framework?
  • Python爬虫基础知识点
  • K8s运维备忘
  • 激光雷达+rtk+rgb联合使用(4)