首页 > 其他分享 >【二十】issubclass()函数 -- 检查类型(1)

【二十】issubclass()函数 -- 检查类型(1)

时间:2023-06-01 20:45:14浏览次数:47  
标签:object tuple -- 子类 二十 list issubclass str

【二十】issubclass()函数 -- 检查类型(1)

【1】作用

  • Python 提供了如下两个函数来检查类型:

    • issubclass(cls, class_or_tuple):
      • 检查 cls 是否为后一个类或元组包含的多个类中任意类的子类。
    • isinstance(obj, class_or_tuple):
      • 检查 obj 是否为后一个类或元组包含的多个类中任意类的对象。
  • 通过使用上面两个函数,程序可以方便地先执行检查,然后才调用方法,这样可以保证程序不会出现意外情况。

  • 如下程序示范了通过这两个函数来检查类型:

# 定义一个字符串
hello = "Hello";
# "Hello"是str类的实例,输出True
print('"Hello"是否是str类的实例: ', isinstance(hello, str))
# "Hello"是object类的子类的实例,输出True
print('"Hello"是否是object类的实例: ', isinstance(hello, object))
# str是object类的子类,输出True
print('str是否是object类的子类: ', issubclass(str, object))
# "Hello"不是tuple类及其子类的实例,输出False
print('"Hello"是否是tuple类的实例: ', isinstance(hello, tuple))
# str不是tuple类的子类,输出False
print('str是否是tuple类的子类: ', issubclass(str, tuple))
# 定义一个列表
my_list = [2, 4]
# [2, 4]是list类的实例,输出True
print('[2, 4]是否是list类的实例: ', isinstance(my_list, list))
# [2, 4]是object类的子类的实例,输出True
print('[2, 4]是否是object类及其子类的实例: ', isinstance(my_list, object))
# list是object类的子类,输出True
print('list是否是object类的子类: ', issubclass(list, object))
# [2, 4]不是tuple类及其子类的实例,输出False
print('[2, 4]是否是tuple类及其子类的实例: ', isinstance([2, 4], tuple))
# list不是tuple类的子类,输出False
print('list是否是tuple类的子类: ', issubclass(list, tuple))
  • 通过上面程序可以看出
    • issubclass() 和 isinstance() 两个函数的用法差不多
    • 区别只是
      • issubclass() 的第一个参数是类名
      • 而 isinstance() 的第一个参数是变量
    • 这也与两个函数的意义对应:
      • issubclass 用于判断是否为子类,
      • 而 isinstance() 用于判断是否为该类或子类的实例。
issubclass() 和 isinstance() 两个函数的第二个参数都可使用元组。例如如下代码:
data = (20, 'fkit')
print('data是否为列表或元组: ', isinstance(data, (list, tuple))) # True
# str不是list或者tuple的子类,输出False
print('str是否为list或tuple的子类: ', issubclass(str, (list, tuple)))
# str是list或tuple或object的子类,输出True
print('str是否为list或tuple或object的子类 ', issubclass(str, (list, tuple, object)))

标签:object,tuple,--,子类,二十,list,issubclass,str
From: https://www.cnblogs.com/dream-ze/p/17450150.html

相关文章

  • 【十九】isinstance()函数 -- 检查类型(2)
    【十九】isinstance()函数--检查类型(2)【1】作用这个函数有点类似type函数的定义type判断函数类型是什么而isinstance是通过判断对象是否是已知的类型但是isinstance比type高级一些(功能上的差异)具体差异:type()不考虑继承关系(子类不是父类类型)isinstance......
  • 【二十五】vars() 函数(1)
    【二十五】vars()函数(1)【1】作用vars()函数返回对象object的属性和属性值的字典对象。【2】语法vars([object])object--对象【3】返回值返回对象object的属性和属性值的字典对象如果没有参数,就打印当前调用位置的属性和属性值类似locals()。【4】示......
  • 【二十四】Python中super()详解及应用场景举例(1)
    【二十四】Python中super()详解及应用场景举例(1)【1】作用super也是一个类,是的。他不是一个方法也不是一个内置的关键字。classA:passprint(type(super(A)))#<class'super'>直接通过查看super的源码也可以看出它是一个类classsuper(object):"""......
  • 【二十三】Python 中 property() 函数及 @property 装饰器的使用(1)
    【二十三】Python中property()函数及@property装饰器的使用(1)【1】property应用场景在获取、设置和删除对象属性的时候,需要额外做一些工作。比如在游戏编程中,设置敌人死亡之后需要播放死亡动画。需要限制对象属性的设置和获取。比如用户年龄为只读,或者在设置用户......
  • 分支的另一种 Switch(表达式) case break default break
    packagecom.fqs.test;importjava.util.Scanner;publicclasshello{publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);System.out.print("请在键盘输入吃面的编号");intmy_num=sc.nextInt();//键盘接收输......
  • 【三】和作用域相关(2)
    【三】和作用域相关(2)locals()返回当前作用域中的名字globals()返回全局作用域中的名字deffunc():a=10print(locals())#当前作用域中的内容print(globals())#全局作用域中的内容print("今天内容很多")func()#{'a':10}#{'__name__':'_......
  • javascript设计模式-责任链
    责任链可以用来消除请求的发送者和接收者之间的耦合,这是通过实现一个由隐式地对请求进行处理的对象组成的链而做到的。链中的每个对象可以处理请求,也可以将其传给下一个对象。JS内部就使用了这种模式来处一事件捕获和冒泡问题。一般的结构如下:发送者知道链中的第一个接收者,它向这个......
  • elasticsearch常用命令总结
    目录#查看集群状态curlhttp://*:9200/_cluster/health?pretty#查看所有索引状态curl"http://*:9200/_cat/indices?pretty"#查看异常索引状态curl"http://*:9200/_cat/indices?v&health=red"#查看异常索引分片分配状态curl"http://*:9200/_cat/shards/your_inde......
  • ROS2-Beginner:9-启动节点
    目标:使用命令行工具来启动多个节点背景在大多数入门教程中,您一直在为运行的每个新节点打开新的终端。当您创建越来越多节点同时运行的更复杂的系统时,打开终端和重新输入配置细节会变得乏味。launch文件允许您同时启动和配置包含ROS2节点的许多可执行文件。使用ros2-launch命......
  • 23.3.27-4.2 每周总结
    本周的学习任务依然是每天的javaweb学习、mysql、Android开发学习以及后期的课程复习任务。在javaweb学习方面,我学习了Spring框架的使用和AOP编程等内容;在MySQL方面,我学习了事务的隔离级别和存储引擎的对比使用;在Android开发方面,我学习了多线程编程的方法。在后期的课程复习任务方......