【问题标题】:Check python function signature without a call无需调用即可检查 python 函数签名
【发布时间】:2013-01-10 20:04:39
【问题描述】:

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

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

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

【问题讨论】:

    标签: python function signature typechecking


    【解决方案1】:

    使用inspect 的方法可能是现有的最直接的执行此操作的方法 - 这不是人们通常期望在 Python 中执行的操作。

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

    【讨论】:

    • 确实,我们不希望最终用户调用任意函数。我想做的是使用 python 数据模型作为一种数据库,告诉我们如何将用户请求映射到后端功能。但是这两件事是如此相似,如果python不支持它,我不应该感到惊讶。如果我没有看到更好的答案,我会尽快接受你的答案。
    猜你喜欢
    • 2012-07-12
    • 1970-01-01
    • 2018-06-22
    • 1970-01-01
    • 2020-04-18
    • 2014-07-02
    • 1970-01-01
    • 2019-12-21
    • 1970-01-01
    相关资源
    最近更新 更多