Python にはNone、特定の状況でかなり奇妙な動作をするシングルトンがあります。
>>> a = None
>>> type(a)
<type 'NoneType'>
>>> isinstance(a,None)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: isinstance() arg 2 must be a class, type, or tuple of classes and types
まず最初に、これはタイプ<type 'NoneType'>でNoneはありませんが、それはタイプNoneTypeです。しかし、 を実行するisinstance(a,NoneType)と、次のエラーが返されます。NameError: name 'NoneType' is not defined
ここで、入力のデフォルトが に設定された関数がNoneあり、チェックする必要がある場合は、次のようにします。
if variable is None:
#do something
else:
#do something
代わりに次のことができない理由は何ですか:
if isinstance(variable,None): #or NoneType
#do something
else:
#do something
これをよりよく理解できるように、詳細な説明を探しているだけです
編集:良いアプリケーション
を含むさまざまなタイプのisinstance場合に何かを実行できるように使用したいとしましょう。variableNone
if isinstance(variable,(None,str,float)):
#do something