小编典典

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

all

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

(x instanceof Number).

什么是 python 等价物?


阅读 62

收藏
2022-05-19

共1个答案

小编典典

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

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

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

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

这适用于 Python 2.6。在旧版本上,您几乎只能检查一些硬编码类型。

2022-05-19