【发布时间】:2021-02-03 09:03:26
【问题描述】:
我想从一个函数中获取一个字典,该函数将函数参数作为键,将默认值作为值。
我使用inspect.getfullargspec() 来获取参数列表和默认值列表。然后我尝试使用dict(zip()) 创建这些列表的字典。这有效,但前提是每个参数都有一个默认值。如果没有默认值,那么一切都会混淆(如预期的那样)。
例如,如果参数没有默认值,我该如何添加 None 作为值。
还是有其他想法?
代码如下:
def fn(name, age=18):
pass
spec = getfullargspec(fn)
args = spec.args
defaults = spec.defaults
zipped = dict(zip(args, defaults))
【问题讨论】:
-
回想一下,一旦位置参数被赋予了默认值,所有剩余的位置参数都必须具有默认值。如果您只考虑位置参数,您可以简单地将
defaults与None 相左。
标签: python function dictionary arguments default-value