タイプの比較は推奨されないことは知っていますが、ifelifシリーズでこれを行うコードがいくつかあります。ただし、None値がどのように機能するかについては混乱しています。
def foo(object)
otype = type(object)
#if otype is None: # this doesn't work
if object is None: # this works fine
print("yep")
elif otype is int:
elif ...
どうして私はとなどとうまく比較できますが、とは比較できis int
ませんis None
か?types.NoneTypeはPython3.2でなくなったようですので、使用できません...
以下
i = 1
print(i)
print(type(i))
print(i is None)
print(type(i) is int)
プリント
1
<class 'int'>
False
True
一方
i = None
print(i)
print(type(i))
print(i is None)
print(type(i) is None)
プリント
None
<class 'NoneType'>
True
False
私None
は特別だと思いますが、何が得られますか?実際に存在しますかNoneType
、それともPythonは私に嘘をついていますか?