Python子类判断issubclass和实例判断isinstance

简介: Python子类判断issubclass和实例判断isinstance

1、继承关系

# -*- coding: utf-8 -*-


class Animal(object):
    pass


class Cat(Animal):
    pass


class Dog(Animal):
    pass


cat = Cat()

2、子类判断

issubclass(x, A_tuple)

print(issubclass(Cat, Animal))  # True

print(issubclass(Cat, Dog)) # False

# 两种方式等价
print(issubclass(Cat, (Animal, Dog))) # True
print(issubclass(Cat, Animal) or issubclass(Cat, Dog)) # True

3、实例判断

isinstance(x, A_tuple)

print(isinstance(cat, Animal))  # True
print(isinstance(cat, Cat)) # True
print(isinstance(cat, Dog)) # False

# 两种方式等价
print(isinstance(cat, (Cat, Dog))) # True
print(isinstance(cat, Cat) or isinstance(cat, Dog)) # True

4、获取类的子类

# -- coding: utf-8 --


class A(object):
pass


class B(A):
pass


class C(A):
pass


for clazz in A.__subclasses__():
print(clazz.__name__)
# B C


            </div>
目录
相关文章
|
12月前
|
分布式计算 DataWorks 监控
DataWorks产品体验评测、
DataWorks产品体验评测、
286 0
|
存储 监控 自动驾驶
对象存储OSS产品介绍
本次分享由王太平(征越)主讲,围绕阿里云对象存储OSS的产品介绍、成本优化、功能实战及最佳实践展开。内容涵盖OSS的五种存储类型及其应用场景,详细解析了生命周期管理在数据存储成本优化中的重要作用,并提供了具体的配置建议和实际案例。适合希望深入了解OSS及优化存储成本的用户参考。
618 0
Nuxt3 实战 (五):Header 头部布局
这篇文章介绍了作者忙于公司系统迭代需求,但抽空完成了布局的Header部分。文章提到了需求的拆分,布局的组件拆分,并介绍了Nuxt框架以及安装和启用插件的步骤。还提到了白天暗黑模式切换组件和SVG跟随模式的组件的创建。最后,文章提到了PC端和移动端的最终实现效果,并给出了Github仓库和在线预览链接。
344 0
Nuxt3 实战 (五):Header 头部布局
|
NoSQL Unix MongoDB
【docker 】docker-compose 部署mongoDB
【docker 】docker-compose 部署mongoDB
603 1
|
存储 数据采集 NoSQL
使用Python打造爬虫程序之数据存储与持久化:从网络到硬盘的无缝对接
【4月更文挑战第19天】本文探讨了爬虫中的数据存储与持久化技术,包括文本文件存储、数据库(关系型与非关系型)、NoSQL数据库和键值存储,以及ORM框架的使用。根据数据类型、规模和访问需求选择合适存储方式,并注意数据安全、备份和恢复策略。正确选择和应用这些技术能有效管理和利用爬取数据。
|
芯片 内存技术
天猫精灵蓝牙mesh协议栈demo解析
本文档简单主要介绍如何基于天猫精灵蓝牙mesh协议栈进行产品开发,对目前代码中的light demo进行说明。
|
JavaScript 前端开发 容器
js操作dom元素
js操作dom元素
107 0
|
应用服务中间件 Linux nginx
CentOS7创建nginx服务并配置开机自启
CentOS7创建nginx服务并配置开机自启
526 0
|
关系型数据库 数据库 PostgreSQL
PG技术大讲堂 - 第14讲:PostgreSQL 检查点
PG技术大讲堂 - 第14讲:PostgreSQL 检查点
469 1
|
数据安全/隐私保护
uniapp自定义密码输入键盘-数字键盘效果demoUI方法一(整理)
uniapp自定义密码输入键盘-数字键盘效果demoUI方法一(整理)