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

时间:2018-04-26 12:14:57

标签: python python-3.x function

我想知道是否有可能给定一个函数(作为实例或字符串)获取其参数,如果为每个参数定义了默认值,并且如果可能的话,定义每个参数的类型(可能)使用Python 3.5中的默认值类型(如果已定义)。

你为什么要这样?!

简而言之,我正在生成一个XML文件,其中包含项目中不同功能的详细信息。由于生成器必须是面向未来的,以防有人修改,添加或删除函数,因此必须更新下一个生成的文件。我成功地检索了我想要的函数作为实例或调用它的代码字符串。

使用inspectjedi,我有两个解决方案(嗯,更多解决方案的开头)来解决这个问题。

检查

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

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

分析默认值的类型会导致误解。有办法解决这个问题吗?

Jedi

Jedi是一个非常强大的工具,甚至可能太多了!将函数放在一行代码字符串中,并通过Jedi进行分析,可以提供大量的信息,我完全诚实地告诉你。另外,我可能会收到错误的自动填充功能(例如:我可能会自动完成print

而不是println的参数。

如果有人使用过这些工具之一,或者如果你知道一种更好的,更“pythonic”的方法,我会非常感激!

0 个答案:

没有答案