私の質問には具体的な答えがあるとは思いますが、とにかくわかりません。私は多くのパラメータを持つ関数を書いていますが、それぞれがNone
のいずれかであるか、値の範囲が限られています。私は良い入力を与えるためにユーザーを信頼しないので、私はそのタイプのために各パラメータをチェックする必要があり、それが正しいタイプ(またはNone
)であれば、それが正しい範囲にあるかどうかを見たいと思います。このよう Pythonの論理引数チェック
# size
if isinstance(size, str):
if size in range(4):
self.data[uid]['size'] = int(size)
else:
warnings.warn("ID %s: illegal size %s" % (uid, size))
self.data[uid]['size'] = None
elif size == None:
self.data[uid]['size'] = None
else:
warnings.warn("ID %s: illegal size %s" % (uid, str(size)))
self.data[uid]['size'] = None
などが繰り返しになってきている
、これを自動化する例外/警告を投げると、コードの冗長性を削減するライブラリがあるかもしれない場合、私は思っていた:これは平均が私はこのようなコードの多くを持っています。おかげ
'それぞれのパラメータをチェックする必要があります。あなたが間違っているように聞こえます。予想されるタイプとして使用し、失敗をキャッチするだけです。 – Falmarri
私は入力を確認しなければならないと思っていました。私がそれをやめると、プログラミングはずっと簡単になりました。ちょうど良いと仮定し、エラーを処理します。これは、Pythonのイディオム「Permissionよりも許してもらうのが簡単です」と関係しています。 – Wilduck
'=='の代わりに 'size is None'を使います(' == 'は' .__ eq __() 'を呼び出すため' 'なし 'と比較すると正しく動作するかもしれません)。 –