12

デフォルト値を持つことができる引数のリストを処理する関数を呼び出す必要があります。

コード例:

web.input(name=None, age=None, desc=None, alert=None, country=None, lang=None)

リストまたは辞書を使用して、このように web.input を呼び出すにはどうすればよいですか? 私は立ち往生しています:

getattr(web, 'input').__call__()
4

3 に答える 3

22
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')
于 2012-08-09T10:53:14.287 に答える
11

関連ドキュメントはこちら

web.input(*list)
web.input(**kwargs)
于 2012-08-09T10:53:26.207 に答える
6

*args および **kwargs 表記を使用して、タプル (位置指定) および辞書 (名前付き) 引数を動的に渡すことができます。次のコードは、 web.input(...)と同じように動作します。

keyword_args = {
   "name": None,
   "age": None,
   ...
}
web.input(**keyword_args)
于 2012-08-09T10:53:35.550 に答える