Python中的isinstance()函数

2023-11-03

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

 参考博客:Python中的isinstance()函数_飞鸟逐岸的博客

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python中的isinstance()函数 的相关文章

随机推荐

  • PHP代码导航编辑 PhpStorm 2022中文

    PhpStorm 2022提供最优秀的代码补全 重构 实时错误预防等等功能 能够为程序员提供更为效率的php开发 新版本改进了phpstorm软件的自动完成功能 还增加了代码清理工具 可以删除不必要的部分来优化全类名称 从而更好的提高用户的
  • sql计算用户留存率和时间留存率

    Sql 29 计算用户的平均次日留存率 题目 现在运营想要查看用户在某天刷题后第二天还会再来刷题的平均概率 请你取出相应数据 解法1 表里的数据可以看作是全部第一天来刷题了的 那么我们需要构造出第二天来了的字段 因此可以考虑用left jo
  • Android 打包Jar(发布SDK)常见问题及解决方案

    在Android开发过程中 我们经常会有这种需求 需要将自己开发一个类库打包成jar包以供他人 其他人一般指开发者 调用 而不是直接打包apk文件供最终用户使用 在打包成jar后 你往往会自己先测试一下看jar包能不能直接使用 这时就会常常
  • mac下ssh报错:ssh_exchange_identification: read: Connection reset by peer

    1 美图 2 背景 base lcc lcc hadoop 2 7 4 sh sbin stop all sh This script is Deprecated Instead use stop dfs sh and stop yarn
  • Ant Design Pro入门之部署安装

    部署安装 下载地址 https github com ant design ant design pro 我们使用资料中提供的 已经下载好的文件 ant design pro master zip 第一步 将ant design pro m
  • VSCode 无法更新插件 XHR timeout error 解决办法

    注 本方案仅为XHR timeout error错误的其中一种解决方案 作者使用此方法修改后更新成功 但不保证对于所有的XHR Timeout Error错误 使用此方法后可解决问题 另注 依评论区要求 现已上传修改windows授时服务器
  • 为什么实时时钟的晶振都是32.768KHZ呢

    原来我也只知道实时时钟就应该用32 768KHZ的晶振但不知道为什么 今天突然想知道为什么就查了查 搞懂了 写下来 为了积累 为了分享 1 振荡电路用于实时时钟RTC 对于这种振荡电路只能用32 768KHZ 的晶体晶体被连接在OSC3 与
  • OpenWrt 快速入门(源码目录)

    文章目录 1 OpenWrt 优点 2 OpenWrt 版本发展 3 OpenWrt 源码 缩略语 Acronyms and Abbreviations OpenWrt Wrt Wirless Router 官网 www openwrt o
  • Namomo Test Round 2 C 序列

    题意 给定一个长度为 n n n的序列 a a a 每次可以选择 l
  • Python报错合集(1)

    1 slice None None None 0 is an invalid key X train X test y train y test train test split X resampled y resampled test s
  • MySQL启动过程中的问题

    1 创建my ini 进入MySQL的安装目录 创建配置文件my ini配置文件 写入内容 mysql 设置mysql客户端默认字符集 default character set utf8 mysqld 设置3306端口 port 3306
  • easyExcel设置水印

    1 依赖导入
  • Linux命令入门教程(五):系统管理篇

    Linux系统管理 包括权限管理 网络配置 软件安装 各类参数设置 开关机 系统运行状态等 5 1 权限管理 在linux系统中 用户类别有超级用户和普通用户 只有一个超级用户root 普通用户可以有多个 最根本的区别就是权限不同 在lin
  • iOS17可以更新了!网友实测炫酷值拉满,但续航嘛…

    丰色 发自 凹非寺量子位 公众号 QbitAI iOS 17终于来了 今天凌晨正式推送 有数码博主评价 实用性不高 但酷炫值拉满 旺柴 可以说是一句话概括了 不过有测评发现 更新后续航掉依然的厉害 特别是iPhone XR 可得谨慎了 还登
  • 关于代理抓包,ssl pinning解决方案

    详情见我的博客小生博客 抓包 代理抓包 Fiddler charles能抓http https websocket属于应用层 优点 配置简单 抓取解析ssl方便 缺点 app对代理抓包的检测越发厉害 https http是明文传播 易被修改
  • 轻松搭建基于 SpringBoot + Vue 的 Web 商城应用

    首先介绍下在本文出现的几个比较重要的概念 函数计算 Function Compute 函数计算是一个事件驱动的服务 通过函数计算 用户无需管理服务器等运行情况 只需编写代码并上传 函数计算准备计算资源 并以弹性伸缩的方式运行用户代码 而用户
  • ajax.request,ajaxrequest.js ajaxrequest 0.7最新版 使用AJAXRequest进行AJAX应用程序开发入门小技巧...

    使用AJAXRequest进行AJAX应用程序开发 1 初识AJAXRequest 前言 在发布了AJAXRequest类的几个版本之后 渐渐地有许多朋友用上了它 也有许多朋友问我有没有更详细的说明和示例 不过因为时间的问题以及我能想到的示
  • ClamAV 详解

    1 ClamAV介绍Clam AntiVirus是一个类UNIX系统上使用的反病毒软件包 主要应用于邮件服务器 采用多线程后台操作 可以自动升级病毒库 ClamAV是一个在命令行下查毒软件 因为它不将杀毒作为主要功能 默认只能查出您计算机内
  • 微信小程序canvas生成图片并保存

    需求 做一个类似下图的功能 图片内容是动态的 用canvas画出来 生成临时图片 再保存 实现
  • Python中的isinstance()函数

    1 描述 Python中的 isinstance 函数 是Python中的一个内置函数 用来判断一个函数是否是一个已知的类型 类似 type 2 语法 isinstance object classinfo 参数 object 实例对象 c