is 和 isinstance的区别 and issubclass
2024-10-21 17:37:50
定义一个子类和父类
class A:
pass
class B(A):
pass
is
print(type(b) is B)
# 结果: True print(type(b) is A)
# 结果: False
is 通过"type"可以判断两个类型是否相等, 只会判断绝对相等, 而不去关心父类是谁.
isinstance
print(isinstance(b, B))
#结果: True
print(isinstance(b, A))
#结果: True
isinstance 会对这个对象进行"刨祖坟"式的判断, 先判断本类, 在判断父类, 一直判断, 直到object
issubclass
class A:
pass
class B(A):
pass
class C(B):
pass print(issubclass(C, B))
# 结果: True print(issubclass(C, A))
# 结果: True
判断一个是是否是另外一个类的子类, 也是"刨祖坟"式的判断
最新文章
- 【Alpha版本】冲刺阶段——Day 10
- Element is not currently interactable and may not be manipulated
- web sql database数据存储位置
- Xcode模拟器怎么模拟定位?
- STL迭代器之一:偏特化
- redis发布订阅
- 7,SFDC 管理员篇 - 数据模型 - 公式和验证 1
- 【BZOJ】【1026】【SCOI2009】Windy数
- 几本不错的CPU设计以及VLSI的书籍
- schedule()函数的调用时机(周期性调度)
- javaSE_07Java中类和对象-封装特性
- R语言-单一变量分析
- 使用.NetCore 控制台演示 熔断 降级(polly)
- MySQL对以特定名字开头的数据库进行授权
- 【Mac】-NO.161.Mac.1 -【MacOS Error running 'Tomcat 8.5.371': Cannot run program Permission denied】
- Excel导出采用mvc的ExcelResult继承遇到的问题
- JVM深度解析
- vander范德蒙德行列式
- springMVC版本和jdk版本不匹配造成的问题
- c++ #ifdef的用法