给定以下函数:
def test(* p1=None, p2=None):
...
Run Code Online (Sandbox Code Playgroud)
调用方式如下:
test(p2="hello")
Run Code Online (Sandbox Code Playgroud)
我可以在运行时以编程方式获取参数及其值的列表/字典吗?
1:不想使用,**kwargs因为我想强制用户使用正确的参数名称(并计划进行类型注释)。
2:我查看了inspect获取默认值的模块,但似乎没有让我看到运行时值。
想要创建类似这样的代码:
request = {k: v for k,v in __some_magic_location__ if v is not None}
Run Code Online (Sandbox Code Playgroud)
使用当地人:
>>> def test(*, p1=None, p2=None):
... return locals()
...
>>> test(p2='hello')
{'p1': None, 'p2': 'hello'}
Run Code Online (Sandbox Code Playgroud)