|
发表于 2022-1-19 12:49:30
|
显示全部楼层
这个好理解呀,isinstance() 检查的是 实例对象是否属于某个类的实例,该类如果是其父类,也算。
就好比,"你" (作为一个"实例对象") 是个 "人"(这个类),也属于 "动物"(这个"父类")。
看看代码,验证一下:
- >>> import numpy as np
- >>> b = np.array([1], dtype='f')
- >>> type(b)
- <class 'numpy.ndarray'>
- >>> issubclass(type(b), float)
- False
- >>> type(b[0])
- <class 'numpy.float32'>
- >>> issubclass(type(b[0]), float)
- False
- >>> class myFloat(float):
- pass
- >>> issubclass(myFloat, float)
- True
- >>> m = myFloat()
- >>> isinstance(m, float)
- True
- >>> isinstance(b, float)
- False
- >>> isinstance(b[0], float)
- False
- >>>
- # 另外,你可以对比 type() == 'xClass'
- >>> type(m)
- <class '__main__.myFloat'>
- >>> type(m) == float
- False
- >>> type(m) == myFloat
- True
- >>>
复制代码 |
|