我试图对Python的数据模型有更深入的了解,但我不完全理解以下代码:
>>> x = 1 >>> isinstance(x,int) True >>> isinstance(x,numbers.Integral) True >>> inspect.getmro(int) (<type 'int'>, <type 'object'>) >>> inspect.getmro(numbers.Integral) (<class 'numbers.Integral'>, <class 'numbers.Rational'>, <class 'numbers.Real'>, <class 'numbers.Complex'>, <class 'numbers.Number'>, <type 'object'>)
基于以上所述,似乎int和number.Integral不在同一层次结构中。
int
number.Integral
从Python参考(2.6.6)中,我看到了
Numbers.Integral-表示数学整数集中的元素(正和负)。
int和之间有什么区别numbers.Integral?我在上面的输出中看到的type intvs与class numbers.Integral它有关吗?
numbers.Integral
type int
class numbers.Integral
numbers定义抽象类的层次结构,这些抽象类定义了可能对数字类型进行的操作。参见PEP 3141。int和之间的区别Integral是int支持所有操作Integral定义的具体类型。
numbers
Integral