1. ホーム
  2. python

[解決済み] 関数の引数をチェックする最適な方法とは?[クローズド]

2023-05-19 03:53:27

質問

Pythonの関数の変数をチェックする効率的な方法を探しています。例えば、私は引数の型と値をチェックしたいと思います。このためのモジュールはありますか?それともデコレータのようなもの、または何か特定のイディオムを使うべきですか?

def my_function(a, b, c):
    """An example function I'd like to check the arguments of."""
    # check that a is an int
    # check that 0 < b < 10
    # check that c is not an empty string

どのように解決するのですか?

Pythonicのイディオムで最も多いのは、明確に ドキュメント を明確にし、関数に渡されたものは何でも使ってみて、例外を伝搬させるか、属性エラーをキャッチして TypeError を発生させます。型チェックは、次のようなことに反するので、できるだけ避けるべきです。 ダックタイピング . 値のテストは、コンテキストによってはOKです。

検証が本当に意味をなす唯一の場所は、Webフォームやコマンドライン引数などのような、システムまたはサブシステムのエントリポイントです。他のすべての場所では、関数が適切に文書化されている限り、適切な引数を渡すことは呼び出し側の責任です。