python - 如何检查我的 python 对象是否为数字?

在 Java 中,数字类型都来自 Number,所以我会使用

(x instanceof Number).

python 等价物是什么?

最佳答案

测试您的变量是否是 numbers.Number 的实例:

>>> import numbers
>>> import decimal
>>> [isinstance(x, numbers.Number) for x in (0, 0.0, 0j, decimal.Decimal(0))]
[True, True, True, True]

这里使用 ABCs并且适用于所有内置的类似数字的类,如果它们物有所值,也适用于所有第三方类(注册为 Number ABC 的子类)。

但是,在许多情况下,您不必担心手动检查类型 - Python 是 duck typed并且混合一些兼容的类型通常是可行的,但是当某些操作没有意义时它会发出错误消息(4 - “1”),因此很少需要手动检查。这只是一个奖金。您可以在完成模块时添加它,以避免在实现细节上纠缠他人。

这工作starting with Python 2.6 .在旧版本上,您几乎只能检查一些硬编码类型。

https://stackoverflow.com/questions/4187185/

相关文章:

linux - 如何确定进程是否在 lxc/Docker 内部运行?

python - 在 chrome 中运行 Selenium WebDriver python 绑定

python - Conda 是否取代了对 virtualenv 的需求?

linux - libtool 的 .la 文件有什么用?

linux - 如何在 Linux 中创建给定大小的文件?

python - 如何在 Python 中获取当前执行文件的路径?

linux - SVN check out 文件夹的内容,而不是文件夹本身

python - 如何获得 Python 类的 parent ?

python - 'setdefault' dict 方法的用例

linux - 如何在 bash 中在一行中运行多个后台命令?