【发布时间】:2010-11-26 01:23:37
【问题描述】:
我是Python的新手,我对内置模块中numbers.Integral和int之间的关系有点困惑。
那么我的问题是:
numbers.Integral 和 int 有什么关系?是不是跟Java中Integer和int的关系类似(Integer只是int的一个包装类)?
何时使用 numbers.Integral? 既然mumbers模块中定义的类型都不能被实例化,那么在什么样的场景下我们需要使用这些类型呢?
我知道只有一种情况可以使用 Integral:
# check if x is a integer
isinstance(x, Integral)
来自 Python 语言参考:
" numbers.Number 这些由数字文字创建并返回为 算术运算符的结果和 算术内置函数。 "
但似乎算术运算符或算术内置函数不返回数字类型。它仍然是 builtins 中的类型。
>>> a,b=123,5
>>> c=a*b
>>> print(c.__class__)
<class 'int'>
>>> d=abs(a)
>>> print(d.__class__)
<class 'int'>
我正在使用 Python 3.2a3。
【问题讨论】:
-
顺便说一句,如果您是 python 新手,最好使用 Python 的官方版本,而不是 alpha 版本。
-
非常感谢您的建议。由于我是一名经验丰富的程序员,我想我可以应付。
-
numbers.py中有一行:Integral.register(int),那么int是Integral的子类。
标签: python python-3.x