gpt4 book ai didi

python - 检索指定函数接受的参数的名称(和默认值)

转载 作者:行者123 更新时间:2023-11-28 21:13:24 25 4
gpt4 key购买 nike

假设我有一个函数,foo,它有一些参数......一些位置和一些关键字:

def foo(a, b=1.0, c=None):
print a
print c
return 2 * b

有没有我可以用 foo 作为参数调用的另一个函数(或者我可以调用的 foo 的方法),它将返回给我一个位置列表foo 的参数以及 foo 的关键字参数的元组列表及其默认值?具体来说,调用:

the_function_i_want(foo)

应该返回

(('a',), (('b', 1.0), ('c', None)))

或者类似的东西。需要明确的是,我想要一种方法来确定在调用它的特定时间传递给 foo 的值。相反,我想要以编程方式了解有关 foo 的函数签名的信息。

(我想到的用例是自动制作一个网络表单,该表单能够提交适当的数据作为指定函数的参数。所以如果我调用 web_form(foo) 以适当的方式,它将能够为 foo 的每个参数呈现一个带有空格的 Web 表单,并以适当的方式预先填充默认调用值。)

最佳答案

我想你在描述 inspect.getargspec :

>>> from inspect import getargspec
>>> getargspec(foo)
ArgSpec(args=['a', 'b', 'c'], varargs=None, keywords=None, defaults=(1.0, None))

您还可以使用 signature在 3.x 中:

>>> from inspect import signature
>>> signature(foo)
<Signature (a, b=1.0, c=None)>

关于python - 检索指定函数接受的参数的名称(和默认值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32875881/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com