Python 常用内置函数详解(一):isinstance()函数----判断对象是否是类或子类
创始人
2024-11-04 16:14:00
0

目录

  • 一、功能
  • 二、语法和示例
  • 三、补充:issubclass()函数---判断是否是其他类的子类

一、功能

isinstance() 函数用于判断对象是否是类或者类型元组中任意类元素的实例。
在这里插入图片描述

二、语法和示例

语法结构如下:

isinstance(object, classinfo) # ① object:实例对象 # ② classinfo:类名可以是直接或间接类名、基本类型或者由它们组成的元组 # ③ 返回值:如果对象的类型与classinfo类型相同则返回True;否则返回False 

【示例1】使用isinstance()函数判断一个实例对象是否属于某个类。代码如下:

# -*- coding: utf-8 -*- # @Time    : 2023-10-30 23:34 # @Author  : AmoXiang # @File    : 01-IsinstanceTest.py # @Software: PyCharm # @Blog: https://blog.csdn.net/xw1680  class Animals(object):     a = ['dog', 'cat', 'pig', 'elephant', 'fox']   animal_instance = Animals() print(isinstance(animal_instance, Animals))  # 判断是否为Animals类的实例 print(isinstance(animal_instance, tuple))  # 判断是否为元组 print(isinstance(animal_instance, (list, tuple, Animals)))  # 判断是否为列表,元组或者Animals类的实例 

程序运行结果如下图所示:
在这里插入图片描述
【示例2】使用isinstance()函数判断某个对象是否属于原生类型,代码如下:

# -*- coding: utf-8 -*- # @Time    : 2023-10-30 23:34 # @Author  : AmoXiang # @File    : 01-IsinstanceTest.py # @Software: PyCharm # @Blog: https://blog.csdn.net/xw1680  numbers = [6, 7, 8, 9] result = isinstance(numbers, list) print(f'{numbers} isinstance of list? {result}') result = isinstance(numbers, dict)  # 判断是否为字典 print(f'{numbers} isinstance of dict? {result}') result = isinstance(numbers, (dict, list))  # 判断是否为字典或列表 print(f'{numbers} isinstance of dict or list? {result}') number = 5 result = isinstance(number, list) print(f'{number} isinstance of list? {result}') result = isinstance(number, int) print(f'{number} isinstance of int? {result}') 

程序运行结果如下图所示:
在这里插入图片描述
【示例3】判断多个继承中实例和父类的关系。代码如下:

# -*- coding: utf-8 -*- # @Time    : 2023-10-30 23:34 # @Author  : AmoXiang # @File    : 01-IsinstanceTest.py # @Software: PyCharm # @Blog: https://blog.csdn.net/xw1680  # 示例3: class A:     pass   class B(A):     pass   class C(B):     pass   some_instance = C() if isinstance(some_instance, A):  # 判断实例是否属于A     print(f'{some_instance} 属于A的实例') else:     print(f'{some_instance} 不属于A的实例') 

程序运行结果如下图所示:
在这里插入图片描述
【示例4】将字典转化为JSON格式。判断数据是否为字典类型,如果实字典,则将字典转换为JSON格式,否则提示格式错误。代码如下:

# -*- coding: utf-8 -*- # @Time    : 2023-10-30 23:34 # @Author  : AmoXiang # @File    : 01-IsinstanceTest.py # @Software: PyCharm # @Blog: https://blog.csdn.net/xw1680  import json   # 示例4: def set_page_config(data):     if isinstance(data, dict):         data = json.dumps(data)  # 将字典转化为JSON格式数据         return data     else:         return '类型错误'   dict_data = {'app_id': '123456', 'app_name': 'Student'} print(f'{dict_data} 数据类型是: {type(dict_data)}') print(f'转化后的JSON格式数据是: {set_page_config(dict_data)}') print('*' * 70) list_data = ['123456', 'Student'] print(f'{list_data} 数据类型是: {type(list_data)}') print(set_page_config(list_data)) 

程序运行结果如下图所示:
在这里插入图片描述

三、补充:issubclass()函数—判断是否是其他类的子类

issubclass() 函数用于判断类是否是另外一个类或者类型元组中任意类元素的子类。
在这里插入图片描述
class:类名,用于指定子类
classinfo:类名,用于指定父类
返回值:如果 class 是 classinfo 的子类返回 True,否则返回 False

# -*- coding: utf-8 -*- # @Time    : 2023-10-31 0:14 # @Author  : AmoXiang # @File    : 02-IssubclassTest.py # @Software: PyCharm # @Blog: https://blog.csdn.net/xw1680  # 示例1: 判断类的继承关系 class A:     pass   class B(A):     pass   if issubclass(B, A):     print('B是A的子类')  # 输出结果: B是A的子类 else:     print('B不是A的子类')   # 示例2:判断多个继承中父类和子类的关系 class C(B):     pass   if issubclass(C, A):     print('C是A的子类') else:     print('C不是A的子类') print(issubclass(C, A)) print(issubclass(B, (A, C)))  # 判断B是A或C的子类 

程序运行结果如下图所示:
在这里插入图片描述

相关内容

热门资讯

一分钟辅助!免费闲逸辅助器免费... 一分钟辅助!免费闲逸辅助器免费(辅助挂)原来是真的辅助工具(有挂解密)1)免费闲逸辅助器免费辅助插件...
第三方插件!werplan有挂... 第三方插件!werplan有挂吗,微信决胜游戏辅助,大纲教程(有挂方略)1)微信决胜游戏辅助有没有挂...
第6分钟辅助!闲逸游戏游透视吗... 第6分钟辅助!闲逸游戏游透视吗(辅助挂)好像真的有辅助技巧(有挂秘诀)1、完成闲逸游戏游透视吗有辅助...
教学辅助挂!hhpoker外挂... 教学辅助挂!hhpoker外挂靠谱吗,贪玩游戏辅助,讲义教程(有挂详细)1、下载好贪玩游戏辅助透视辅...
1分钟辅助!wepokerpl... 1分钟辅助!wepokerplus辅助作弊(辅助挂)竟然是真的辅助插件(有挂方针)1、wepoker...
今天下午!wepoker买脚本... 今天下午!wepoker买脚本靠谱吗,蜀山四川小程序技巧,模板教程(有挂方法)一、蜀山四川小程序技巧...
7分钟辅助!财神13张辅助工具... 7分钟辅助!财神13张辅助工具(辅助挂)果然是有辅助工具(有挂总结)1、完成财神13张辅助工具有辅助...
事发当天!wepoker数据分... 事发当天!wepoker数据分析工具,上饶辅助设备出租,学习教程(有挂分析)1、上饶辅助设备出租辅助...
第三分钟辅助!金虎爷科技(辅助... 第三分钟辅助!金虎爷科技(辅助挂)都是有辅助app(有挂存在)1、上手简单,内置详细流程视频教学,新...
方法辅助挂!wepoker有没... 方法辅助挂!wepoker有没有挂,盛世辅助工具,模板教程(有挂辅助)进入游戏-大厅左侧-新手福利-...