web-dev-qa-db-ja.com

python内の変数のタイプの判別はNoneTypeです。

変数がNoneTypeタイプかどうかを確認したいと思います。他のタイプについては、次のようなことができます。

_    type([])==list
_

しかし、NoneTypeの場合、この単純な方法は不可能です。つまり、type(None)==NoneTypeとは言えません。別の方法はありますか?そして、なぜこれが一部のタイプでは可能で他のタイプでは不可能なのですか?ありがとうございました。

11
splinter

NoneTypeは、たまたま自動的にグローバルスコープに含まれません。これは本当に問題ではありません。

>>> NoneType = type(None)
>>> x = None
>>> type(x) == NoneType
True
>>> isinstance(x, NoneType)
True

いずれにしても、型チェックを行うのは珍しいことです。むしろ、テストする必要がありますx is None

16
Alex Hall

もちろんできます。

type(None)==None.__class__

True