我有一个 Python (3) 函数
def f(a, b, c=1, d=2):
pass
Run Code Online (Sandbox Code Playgroud)
我想在代码中建立一个参数列表。实际用例是基于一些命令行参数解析来执行此操作,但这是一个一般性问题(我对 python 相当陌生)例如
myargs = {}
myargs['positionalParams'] = ['foo', 'bar']
myargs['c']=2
myargs['d']=3
f(myargs)
Run Code Online (Sandbox Code Playgroud)
我知道我可以f(*somelist)将列表扩展为单独的参数,但是如何混合使用位置参数和可选参数呢?或者我做两次,一次用于位置,一次用于其他人的字典?
args = ['foo', 'bar']
kwargs = {'c': 2, 'd': 3}
f(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)
请注意,这也可以正常工作:
kwargs = {'a': 'foo', 'b': 'bar', 'c': 2, 'd': 3}
f(**kwargs)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3874 次 |
| 最近记录: |