我想做一些类似于这里所要求的事情获取Python函数中的参数名称列表,但使用部分函数。 IE。我需要获取部分函数的可能参数。我可以使用以下方式获取关键字参数:
my_partial_func.keywords
但我目前正在努力获取非关键字参数。对于这种特殊情况,检查模块也不会产生任何结果。任何建议都会很棒。
.args
包含传递给部分函数的参数。如果您想获取原始函数所需的参数,请使用您在 inspect
属性上链接的 .func
解决方案。
您可以通过在 functools.partial 对象上调用
dir
来找到这一点:
>>> dir(x)
['__call__', '__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'args', 'func', 'keywords']
您可以使用:
import functools
p = functools.partial(lambda a, b: a > b, {a: 1})
print(p.args)
# ({'a': 1},)
print(p.func.__code__.co_varnames)
# ('a', 'b')