Pythonは明示的な型チェックよりもダックタイピングを奨励しています。ただし、型を明示的にチェックすると便利なことがあります。アサーションとライブラリAPIの型チェックの例外との比較
Pythonライブラリで型チェックが必要な場合は、アサーションまたは例外を使用する必要がありますか?
def foo(bar):
assert isinstance(bar, str)
def foo(bar):
if not isinstance(bar, str):
raise TypeError
ライブラリのAPIは公開APIであり、公開APIは明示的に例外を発生させる必要があります。しかし、(ユーザー入力検証ライブラリでない限り)ユーザー入力の検証を行うライブラリの責任であってはなりません。また、ライブラリが「誤って使用される」ように設計されることも妥当ではありません。ライブラリを使用しているプログラムは、TypeError例外をキャッチしません。適切なタイプのライブラリAPIを代わりに呼び出すように修正されました。
例外を発生させる代わりに、アサーションでライブラリタイプのチェックを行う必要がありますか?
合理的であることを確認するために、関数を呼び出した後、210
あなたの状況に適した方法を実行する必要があります。明示的な型チェックはしばしば必要ではありませんが、何かを処理する最善の方法です。その場合は、isinstance()を使用することをお勧めします。そうすれば、何が間違っているのかをユーザーに知らせるメッセージで例外を呼び出すことができます。 – IanAuld