デフォルト値を持つことができる引数のリストを処理する関数を呼び出す必要があります。
コード例:
web.input(name=None, age=None, desc=None, alert=None, country=None, lang=None)
リストまたは辞書を使用して、このように web.input を呼び出すにはどうすればよいですか? 私は立ち往生しています:
getattr(web, 'input').__call__()
my_args = {'name': 'Jim', 'age': 30, 'country': 'France'}
getattr(web, 'input')(**my_args) # the __call__ is unnecessary
getattr を使用する必要もありません。もちろん、メソッドを直接呼び出すこともできます (文字列から属性を検索したくない場合)。
web.input(**my_args)
リストでも同じことができます:
my_args_list = ['Jim', 30, 'A cool person']
getattr(web, 'input')(*my_args_list)
と同等です
getattr(web, 'input')('Jim', 30, 'A cool person')
関連ドキュメントはこちら
web.input(*list)
web.input(**kwargs)
*args および **kwargs 表記を使用して、タプル (位置指定) および辞書 (名前付き) 引数を動的に渡すことができます。次のコードは、 web.input(...)と同じように動作します。
keyword_args = {
"name": None,
"age": None,
...
}
web.input(**keyword_args)