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
相关文章:
Python内置函数isinstance()函数介绍
Python内置函数isinstance()函数介绍 isinstance() 函数是Python内置函数,来判断一个对象是否是一个已知的类型,返回值为布尔值True或False。其语法格式: isinstance(object, classinfo) 【官方说法https://docs.python.org/zh-cn/3/librar…...

QxRibbon 知:搭建 CMake 构建环境
文章目录 前言安装 cmake问题处理qtcreator 检测 CMake 异常 参考资料 前言 高版本的 QtCreator 已经集成了 cmake 工具,并支持以 CMakelists.txt 文件作为工程开发项目。 https://www.qt.io/blog/2019/07/30/update-on-cmake-project-support-in-qt-creator 安装…...

Spring框架-面试题核心概念
目录 1.Spring框架的作用是什么? 2. 什么是DI? 3.什么是AOP? 4.Spring常用注解 5.Spring中的设计模式 6.Spring支持的几种bean的作用域 7.Spring中Bean的生命周期? 8.Spring中的事务管理 9.Spring中的依赖注入方式有几种 10.Sprin…...

Tomcat部署及优化
Tomcat部署及优化 一、Tomcat的介绍1.Tomcat核心组件2.Tomcat 功能组件结构3.Container 结构分析:4.Tomcat处理请求过程 二、Tomcat 部署步骤1.关闭防火墙,将安装 Tomcat 所需软件包传到/opt目录下2.安装JDK3.设置JDK环境变量4.编写一个java 简易的源代码…...

C++/C按照时间命名保存bin文件
背景 在Linux应用编程过程中,使用C或者C语言保存、读取bin文件是比较常见的需求。这里详细记录一下使用C保存bin文件,也可以使用C语言实现。 代码 C/C语言保存bin文件函数,C中也能使用 正确写入返回0,错误返回-1 // C 保存bi…...

面向多告警源,如何构建统一告警管理体系?
本文介绍告警统一管理的最佳实践,以帮助企业更好地处理异构监控系统所带来的挑战和问题。 背景信息 在云原生时代,企业IT基础设施的规模越来越大,越来越多的系统和服务被部署在云环境中。为了监控这些复杂的IT环境,企业通常会选…...
python 面向对象 -- 简单理解版
一、什么是面向对象 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的。除了Python,Java也是一门面向对象的编程语言。 先来简单的了解下面向对象的一些基本特征。 类(Class): 用来描述具有相…...

SpringMVC 程序开发
✏️作者:银河罐头 📋系列专栏:JavaEE 🌲“种一棵树最好的时间是十年前,其次是现在” 目录 什么是 Spring MVCMVC 定义 怎么学 Spring MVCSpring MVC 创建和连接创建 Spring MVC 项目RequestMapping 注解介绍PostMappi…...

使用单片机遇到的几个问题及解决方案1
1.为什么我跟着视频学习的过程中,我没有找到“端口"的选项呢?我甚至没有出现“其他插口”。 想要找到设备管理器最快的方法就是: 首先如果把输入法调为大写形式,然后按下“WINX”,再按“M”就会出现一个设备管理…...

vue项目中el-upload 组件添加token的方法
在使用el-upload的时候,上传文件到服务器,有时候后台要求上传token,怎么处理呢?以下是一个示例。 效果图 template中片段 <el-dialog :modal-append-to-body"false" title"上传文件" :visible.sync"…...

独立按键检测短按、长按,松手后响应操作
背景 有项目使用独立按键检测,短按、长按。根据使用效果,发现松手后,也就是按键弹起后响应操作比较好操作。 记得之前,博主写过一篇关于按键的检测的文章,但是过于复杂了。可能很难懂,这里就简单一点&…...

BurpSuite2023测试越权漏洞
BurpSuite2023测试越权漏洞 BurpSuite安装创建项目 - 打开内置浏览器越权漏洞测试问题处理 BurpSuite安装 官网下载社区版并安装,下载地址:链接: https://portswigger.net/burp 安装成功后图标 创建项目 - 打开内置浏览器 打开BurpSuite,…...

申请国家标准项目管理专业人员能力评级(CSPM)报名条件有哪些?
2021年10月,中共中央、国务院发布的《国家标准化发展纲要》明确提出构建多层次从业人员培养培训体系,开展专业人才培养培训和国家质量基础设施综合教育。建立健全人才的职业能力评价和激励机制。由中国标准化协会(CAS)组织开展的项…...

代码随想录算法训练营第五十二天|300.最长递增子序列|674. 最长连续递增序列|718. 最长重复子数组
LeetCode300.最长递增子序列 动态规划五部曲: 1,dp[i]的定义:本题中,正确定义dp数组的含义十分重要。dp[i]表示i之前包括i的以nums[i]结尾的最长递增子序列的长度。为什么一定表示 “以nums[i]结尾的最长递增子序” ,…...

完全卸载mysql教程
引言 很多人因为第一次安装mysql导致安装错误,或者安装的数据库版本太高,比如mysql8.0版本,出现了很多问题,导致数据库无法使用,或者一些图形界面无法操作,想要卸载,重装稳定的mysql数据库&…...

4G开发板-安卓手机开发套件-MTK主板开发板定制
开发板是一种用于嵌入式系统开发的电路板,它包含了各种硬件组件,如中央处理器、存储器、输入设备、输出设备、数据通路/总线以及外部资源接口等。为了满足特定的开发需求,嵌入式系统开发者通常会根据项目要求来定制开发板,当然用户…...

人工智能十大新星揭晓,华人学者占90%
人工智能领域著名杂志 IEEE Intelligent Systems发布了 2022 年度“人工智能十大新星”(AIs 10 to Watch)名单 ,其中有九位都是华人研究者。知识人网小编推荐给大家。 近日,人工智能领域著名杂志 IEEE Intelligent Systems公布了 …...

ROS学习——通信机制(话题通信①—发布方实现)
2.1 话题通信 Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程 040话题通信(C)1_发布方框架_Chapter2-ROS通信机制_哔哩哔哩_bilibili 一、ROS 中的基本通信机制主要有如下三种实现策略 话题通信(发布订阅模式服务通信(请求响应模式)参数服务器(参数共享模式) 二、…...
【运筹优化】最短路算法之SPFA算法 + Java代码实现
文章目录 一、SPFA算法简介二、SPFA算法思想三、Java代码实现四、测试 一、SPFA算法简介 SPFA 算法是 Bellman-Ford算法 的队列优化算法的别称,通常用于求含负权边的单源最短路径,以及判负权环。SPFA 最坏情况下复杂度和朴素 Bellman-Ford 相同…...

linuxOPS基础_linux权限管理
权限概述 什么是权限 在多用户计算机系统的管理中,权限是指某个特定的用户具有特定的系统资源使用权利。 在Linux 中分别有读、写、执行权限 \权限针对文件权限针对目录读r(read)表示可以查看文件内容;cat、less…表示可以(ls)查看目录中存在的文…...
Python爬虫实战:研究MechanicalSoup库相关技术
一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...

简易版抽奖活动的设计技术方案
1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...
多场景 OkHttpClient 管理器 - Android 网络通信解决方案
下面是一个完整的 Android 实现,展示如何创建和管理多个 OkHttpClient 实例,分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...
在rocky linux 9.5上在线安装 docker
前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...
JVM垃圾回收机制全解析
Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...
MVC 数据库
MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...
关于 WASM:1. WASM 基础原理
一、WASM 简介 1.1 WebAssembly 是什么? WebAssembly(WASM) 是一种能在现代浏览器中高效运行的二进制指令格式,它不是传统的编程语言,而是一种 低级字节码格式,可由高级语言(如 C、C、Rust&am…...
Pinocchio 库详解及其在足式机器人上的应用
Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库,专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性,并提供了一个通用的框架&…...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek
文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama(有网络的电脑)2.2.3 安装Ollama(无网络的电脑)2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...