1. ホーム
  2. パイソン

[解決済み] [Solved] Pythonのオブジェクトが数字かどうかを確認するには?[重複している]。

2022-04-17 20:26:24

質問

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]

これは ABC のサブクラスとして登録されている)、すべての組み込みの数的なクラスで動作します。 Number ABC)。

しかし、多くの場合、手動で型を確認することを心配する必要はありません。Pythonは ダックタイピング で、互換性のある型を混ぜても大抵はうまくいきますが、意味のない操作をするとエラーメッセージを吐き出します ( 4 - "1" というわけで、手動でチェックする必要はほとんどありません。あくまでおまけです。モジュールを完成させるときに追加して、実装の詳細で他の人を困らせるのを避けることができます。

この作品 Python 2.6から . それ以前のバージョンでは、いくつかのハードコードされた型をチェックするのが精一杯でしょう。