Python 获取部分函数的参数

问题描述 投票:0回答:2

我想做一些类似于这里所要求的事情获取Python函数中的参数名称列表,但使用部分函数。 IE。我需要获取部分函数的可能参数。我可以使用以下方式获取关键字参数:

my_partial_func.keywords

但我目前正在努力获取非关键字参数。对于这种特殊情况,检查模块也不会产生任何结果。任何建议都会很棒。

python parameters arguments introspection partial
2个回答
8
投票

.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']

0
投票

您可以使用:

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')
© www.soinside.com 2019 - 2024. All rights reserved.