Python

【Python】Noneとは?

この記事では、Python の None について解説します。

None型とは?

Python では、値が存在しない場合に NoneType型 の None という値を使って表現します。他の言語では、よく「null」と表現されます。

x = None
print(x, type(x))
>> None <class 'NoneType'>

None は、True や False などと同じ「組み込み定数」なので、値を代入することはできない

None は、「値の非存在を表すのに使用される」ということを覚えておきましょう❗️

Noneの評価

None は、if文 で評価されると「False」として扱われます。

if None:
    print('Trueです')
else:
    print('Falseです')
>> Falseです

オブジェクトが True か False か忘れてしまった場合は、bool() を使って bool値 を生成してみよう!

print(bool(''))         # False
print(bool('abc'))      # True
print(bool([]))         # False
print(bool([1, 2, 3]))  # True
print(bool(None))       # False

None判定

オブジェクトと None を比較をする場合は、==演算子 ではなく is演算子 を使うことが推奨されています。

==を使って値を比較するよりも、is演算子 で id を比較する方が高速です。

obj = '適当なオブジェクト'
print(obj is None)
>> False

none_obj = None
print(none_obj is None)
>> True

id とは、オブジェクトの識別番号で、インスタンスごとに異なる番号を持っています。組み込み定数である None には、必ず1つしかインスタンスが存在しません。

そのため、None なら必ず番号が一緒になるので is演算子 で判定することができます。

余談

同じ組み込み定数である True や False でも is演算子 で比較することができます。

flag = True

if flag is True:
    print(True)

実行結果

True

以下のように True として認識される値との比較には == を使います。

flag = 1

if flag == True:
    print(True)

実行結果

True

まとめ

この記事では、Pyhton の None について解説しました。

None を見かけたら その変数には値が無い状態なんだなぁ と眺めましょう!

それでは今回の内容はここまでです。ではまたどこかで〜( ・∀・)ノ

『DMM WEBCAMP COMMIT』