Python オブジェクトが数値かどうかを確認するにはどうすればよいですか? [重複] 質問する

Python オブジェクトが数値かどうかを確認するにはどうすればよいですか? [重複] 質問する

Javaでは数値型はすべてNumberから派生しているので、

(x instanceof Number).

Python の同等物は何ですか?

ベストアンサー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]

これはABCsNumberまた、組み込みの数値のようなクラスすべてで機能し、また、価値のあるサードパーティのクラス ( ABC のサブクラスとして登録されている)でも機能します。

しかし、多くの場合、手動で型をチェックする必要はありません。Pythonはダックタイプある程度互換性のある型を混ぜても通常は機能しますが、何らかの操作が意味をなさない場合はエラー メッセージが表示されます ( 4 - "1")。そのため、これを手動で確認する必要はほとんどありません。これは単なるボーナスです。モジュールを完成させるときに追加して、実装の詳細で他の人を困らせないようにすることができます。

これはうまくいくPython 2.6から始める古いバージョンでは、いくつかのハードコードされた型のチェックにかなり制限されています。

おすすめ記事