[解決済み] 関数の引数をチェックする最適な方法とは?[クローズド]
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フォームやコマンドライン引数などのような、システムまたはサブシステムのエントリポイントです。他のすべての場所では、関数が適切に文書化されている限り、適切な引数を渡すことは呼び出し側の責任です。
関連
-
[解決済み] バイトを文字列に変換する
-
[解決済み] 最小限の驚き」と「変更可能なデフォルトの引数
-
[解決済み] モジュールの関数名(文字列)を使って、モジュールの関数を呼び出す。
-
[解決済み] なぜC++はPythonよりもstdinからの行の読み込みが遅いのですか?
-
[解決済み] 文字列が空かどうかを確認する方法は?
-
[解決済み] 複数行の長い文字列を作成するためのPythonicな方法
-
[解決済み] リファレンス - このシンボルはPHPで何を意味するのですか?
-
[解決済み] タプルのリストを複数のリストに変換するには?
-
[解決済み] ファブリック経由でデプロイユーザとしてvirtualenvを有効化する
-
[解決済み] Pythonでマルチプロセッシングキューを使うには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] アサートの使用に関するベストプラクティス?
-
[解決済み] DataFrameの文字列、dtypeがobjectの場合
-
[解決済み] Pythonです。未束縛のメソッドを束縛する?
-
[解決済み] Pythonの構文に新しいステートメントを追加することはできますか?
-
[解決済み] PythonでSVGからPNGに変換する
-
[解決済み] Django のテストデータベースをメモリ上だけで動作させるには?
-
[解決済み] Pythonでマルチプロセッシングキューを使うには?
-
[解決済み] Django で全てのリクエストヘッダを取得するにはどうすれば良いですか?
-
[解決済み] Pythonによる一対のクロスプロダクト [重複] (英語)
-
[解決済み] Python の sorted() はどのようなアルゴリズムを使っているのですか?重複