我需要调用一个函数来处理可以有默认值的参数列表:
示例代码:
web.input(name=None, age=None, desc=None, alert=None, country=None, lang=None)
Run Code Online (Sandbox Code Playgroud)
如何使用列表或字典调用web.input?我坚持:
getattr(web, 'input').__call__()
Run Code Online (Sandbox Code Playgroud)
Hen*_*all 16
my_args = {'name': 'Jim', 'age': 30, 'country': 'France'}
getattr(web, 'input')(**my_args) # the __call__ is unnecessary
Run Code Online (Sandbox Code Playgroud)
您也不需要使用getattr,您当然可以直接调用该方法(如果您不想从字符串中查找属性):
web.input(**my_args)
Run Code Online (Sandbox Code Playgroud)
您可以使用列表执行相同的操作:
my_args_list = ['Jim', 30, 'A cool person']
getattr(web, 'input')(*my_args_list)
Run Code Online (Sandbox Code Playgroud)
相当于
getattr(web, 'input')('Jim', 30, 'A cool person')
Run Code Online (Sandbox Code Playgroud)
The*_*eke 10
在这里找到相关文档
web.input(*list)
web.input(**kwargs)
Run Code Online (Sandbox Code Playgroud)
您可以使用* args和** kwargs表示法来动态传递元组(位置)和字典(命名)参数。下一个代码将与您的web.input(...)相同。
keyword_args = {
"name": None,
"age": None,
...
}
web.input(**keyword_args)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6951 次 |
| 最近记录: |