用于python 2的Inspect模块中的签名方法

时间:2017-08-29 18:31:41

标签: python python-2.7 python-3.x

我正在尝试在Python 2中运行Python 3库。它使用inspect模块和signature方法,该方法未在模块的Python 2版本中实现。

signature = inspect.signature(initializer)

__future__中没有可以提供帮助的实现(至少我没有找到)。

如何更换此方法?

2 个答案:

答案 0 :(得分:4)

PyPI上的包funcsigsPEP-362的后端(它为Python 2.6+添加了签名内省)。因此,将有问题的行更改为

import funcsigs
signature = funcsigs.signature(initializer)

答案 1 :(得分:0)

inspect2 是将整个 Python 3.6 inspect 模块向后移植到 Python 2.7。与 funcsigs 一样,它也可以从 PyPI 获得,而 inspect2 是最近维护的。 (在我撰写本文时,inspect2 上次更新是在 2019 年,而 funcsigs 上次更新是在 2016 年。)