Python为什么issubclass(int,float)返回False

时间:2020-04-15 21:30:51

标签: python oop floating-point int subclass

在Python中,为什么issubclass(int, float)isinstance(1, float)都返回False

我一直认为intfloat的子类。

In [1]: issubclass(int, float)
Out[1]: False

In [2]: isinstance(1, float)
Out[2]: False

研究

https://github.com/Stewori/pytypes/issues/26

PEP 484中的内容[The numeric tower][1],但我认为这是针对类型提示的。

1 个答案:

答案 0 :(得分:2)

因为int不是float的子类:

>>> import inspect
>>> inspect.getmro(int)
(<class 'int'>, <class 'object'>)
>>> inspect.getmro(float)
(<class 'float'>, <class 'object'>)