如何在python中获得另一个函数的预期参数?

2024-04-28 20:10:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道,给定一个函数(作为一个实例或字符串)是否有可能获得它的参数,如果为每个参数定义了默认值,如果可能的话,每个参数的类型(可能使用默认值的类型,如果定义的话)。你知道吗

你为什么要这样?!你知道吗

长话短说,我正在生成一个XML文件,其中包含项目中不同函数的详细信息。由于生成器必须是未来的证明,以防有人修改、添加或删除函数,因此必须更新下一个生成的文件。我成功地检索到了我想要的函数作为实例或调用它的代码字符串。你知道吗

我有两种解决方案(更多的是解决方案的开始)来解决这个问题,使用inspectjedi。你知道吗

检查

使用inspect.signature(function),我可以检索所有参数的名称和默认值。我在这里看到的主要问题是分析这个函数:

def fct(a=None):
    # Whatever the function does...

分析默认值的类型会导致误解。有办法解决吗?你知道吗

Jedi

绝地武士是一个极其强大的工具,也许是太多了!在一行代码字符串中获取函数,并通过Jedi对其进行分析,得到了非常多的信息,说实话,我对这些信息一无所知。另外,我可能会得到错误的自动完成(例如:我可能会自动完成到println,而不是拥有print的参数)

如果有人用这些工具中的一个来做这个动作,或者如果你知道一个更好的,更“pythonic”的方法,我会非常感激的!你知道吗


Tags: 文件工具实例函数字符串代码信息类型