MHI/3.0 - $ [Python] なぜ、None は is で判定しなければいけないのか
だって、None は一応シングルトンだけれども、別に None を継承したクラスのインスタンスがあったっていいだろうし (根拠はないので、よくないかも)
ハッ!? そういえば、Noneって継承できるのか!?
・・・いや、多分出来ないはずだ。だが、万が一!?
Python3.1
>>> type(None) <class 'NoneType'> >>> NoneType Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'NoneType' is not defined >>> class N(type(None)):pass ... Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: type 'NoneType' is not an acceptable base type
Python2.6
>>> type(None) <type 'NoneType'> >>> NoneType Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'NoneType' is not defined >>> class N(type(None)):pass ... Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: Error when calling the metaclass bases type 'NoneType' is not an acceptable base type
・・・やっぱりそうだよね。