无需调用即可检查python函数签名

时间:2013-01-27 08:52:28

标签: python function signature typechecking

我的程序从用户输入派生一个序列args和一个映射kwargs。我想检查该输入,然后将其转发到python函数f(根据用户输入选择)。在这种情况下,f[kw]args之间的函数签名不匹配是输入错误;我必须将它与f的实现中可能的编程错误区分开来,即使它们可能都会引发TypeError

所以我想在尝试函数调用之前检查签名。除了手动将[kw]argsinspect.getargspec(或稍后的python版本中的.getfullargspec.signature)的结果进行比较之外,还有办法做到这一点吗?

相关问题: Is there a way to check a function's signature in Python?

1 个答案:

答案 0 :(得分:2)

使用inspect的方法可能是存在这种方法的最直接的方法 - 它不是人们通常期望用Python做的事情。

(通常,允许最终用户使用任意输入调用任意函数不是程序员想要的。)