uwsgi.itの api 用の python クライアントに取り組んでおり、 http 要求を介して送信される多くの (オプションの) パラメータを受け入れるメソッドを記述する必要があることがわかりました。
最初は、ユーザーが挿入できるパラメーターを宣言したかったのですが、それらは非常に多いため、ユーザーがdict内に自由に何かを挿入できるようにするのではなく、パラメーターとしてリストを使用する方が簡単で安全だと思いました。このようなもので:
def alarms(self, container=None, _class=None, color=None,
vassal=None, level=None, line=None, filename=None,
func=None, with_total=None, range=None):
params = {k: v for k, v in locals().iteritems() if k != 'self' and v}
if '_class' in params:
params['class'] = params['_class']
del params['_class']
return self.get('alarms', params)
しかし、それはかなり醜く、「_class」パラメーターを処理するこの方法は本当に好きではありません。したがって、私の頭に浮かぶ他の可能性は、何でも (または **kwargs) を含むことができる辞書を受け入れ、受け入れられたキーを docstring にリストしてから、入力をサニタイズすることです。可能な方法は、許可されたパラメーターのみを受け入れる「プライベート」メソッドを宣言することです。しかし、その後、同じ問題が再び発生します。なにか提案を?非常に多くのパラメーターを持つメソッドのベストプラクティスはありますか?