私は、引数の1関数入力の検証のための組み込みPython例外がありますか?
def func(x,
t # t should be a tuple of a predefined type (str, bool, str)
):
...
としてタプルtが正しいタイプではないと言うに適切な組み込みのエラーがある、または私は自分自身を定義する必要があります期待する機能を持っています?
私は、引数の1関数入力の検証のための組み込みPython例外がありますか?
def func(x,
t # t should be a tuple of a predefined type (str, bool, str)
):
...
としてタプルtが正しいタイプではないと言うに適切な組み込みのエラーがある、または私は自分自身を定義する必要があります期待する機能を持っています?
はい、TypeError
exceptionは、まさにこの場合に使用されることを意図されている:操作または機能が不適切なタイプのオブジェクトに適用された場合に発生
あなたがしたいことがあり。
[...](例えば
int
が期待されているlist
を渡して)間違った型の引数を渡す
TypeError
を生じるはずである[。]
にtype hintingを使用して、間違った型で早期に渡されるプログラマーのエラーをキャッチします。たとえば、リンキング時間中にタイプヒントをチェックします。
はい、これは通常TypeError
で示されます。または、引数の型が正しいが値が無効な場合は、ValueError
を使用します。
多くの場合(特にTypeError
)、これらを明示的に呼び出す必要はありません。タイプがサポートしていない操作を実行しようとすると、それらは自然に発生します。
TypeError例外を使用できます。
ありがとうございます!タイプヒントのアイディアが大好きですが、実際にプログラマチックにタイプヒントを検証する方法はわかりません(基本的に、これはPythonを強く型付けされた言語に変換します)。私も小規模なプロジェクトに取り組んでいますので、複雑さのコストが利益によって相殺されるのかどうかはわかりません。 – NotAnAmbiTurner
@NotAnAmbiTurner外部ツールを使用して、ヒントを静的にチェックします。ヒントは実行時に使用されません。 –
ありがとう:)成熟したタイプチェッカーはありますか? – NotAnAmbiTurner