変数がNoneType
型であるかどうかチェックしたいと思います。他のタイプのために我々は次のようなものを行うことができます。変数の型を決定するのはPythonではNoneTypeです
type([])==list
しかしNoneType
のために、この単純な方法はできません。つまり、type(None)==NoneType
とは言えません。別の方法がありますか?そして、なぜこれはいくつかのタイプのために可能であり、他のタイプのためではありませんか?ありがとうございました。
変数がNoneType
型であるかどうかチェックしたいと思います。他のタイプのために我々は次のようなものを行うことができます。変数の型を決定するのはPythonではNoneTypeです
type([])==list
しかしNoneType
のために、この単純な方法はできません。つまり、type(None)==NoneType
とは言えません。別の方法がありますか?そして、なぜこれはいくつかのタイプのために可能であり、他のタイプのためではありませんか?ありがとうございました。
NoneType
グローバルスコープ内に自動的には存在しません。これは実際問題ではありません。
>>> NoneType = type(None)
>>> x = None
>>> type(x) == NoneType
True
>>> isinstance(x, NoneType)
True
いずれの場合も、タイプチェックを行うのは珍しいことです。むしろ、x is None
をテストする必要があります。
ありがとう、私はこのソリューションと@ JeanFrancoisFabreの解決策の両方が仕事をすると思います。そのうちの1つを他のもの(スピード、スタイルなど)よりも好むいくつかの理由がありますか? – splinter
@スプリッター私が知っているわけではありません。 –
もちろんできます。
type(None)==None.__class__
True
これはきれいなソリューションのように聞こえる、ありがとう。私はこれがタイプ([])==リストアプローチの一般化であるかどうか疑問に思います。つまり、私はあなたのアプローチがどんなタイプの比較にも対処できると思います。 – splinter
'x is None'を使用してください。どのような状況においても、NoneType型のNone以外のオブジェクトは決して存在しないので、型のチェックには何の利点もありません。 –
私は、 'xはNone'の特別な場合を追加しないために、任意のx、yに対して' type(x)== y'を渡すことができると考えています。注意: 'x == None'を実行することもできます。 –
@ZeroPiraeusあなたが通知されなかった場合の上記を参照してください。 –