Python:如何在不执行代码的情况下验证函数调用
我想验证python函数调用是否在不执行它们的情况下有效 假设我有以下代码: 定义函数(a,b): 印刷品(a、b) cond=真 如果条件: func(1,2) 其他: func(1) 如果Python:如何在不执行代码的情况下验证函数调用,python,python-2.7,function,abstract-syntax-tree,Python,Python 2.7,Function,Abstract Syntax Tree,我想验证python函数调用是否在不执行它们的情况下有效 假设我有以下代码: 定义函数(a,b): 印刷品(a、b) cond=真 如果条件: func(1,2) 其他: func(1) 如果cond=True,那么一切都会正常运行,但是如果cond=False,那么它将失败并抛出以下错误: TypeError: func() takes exactly 2 arguments (1 given) 我需要知道是否所有的函数调用都有效,而不必调用任何函数。这样的错误可以事先使用检查 安装myp
cond=True
,那么一切都会正常运行,但是如果cond=False
,那么它将失败并抛出以下错误:
TypeError: func() takes exactly 2 arguments (1 given)
我需要知道是否所有的函数调用都有效,而不必调用任何函数。这样的错误可以事先使用检查
python3-m pip安装-U mypy
mypy code.py
,以及Python2代码运行mypy--py2 code.py
你能运行单元测试吗?一个合适的静态分析器会发现这种问题。如果正确编写测试所有条件的代码,单元测试将捕捉到这一点。为什么您需要在运行时弄清楚这一点,如果发现问题,您会怎么做?Python的方法往往是“请求原谅比请求许可更好”——只要打电话,如果不起作用,我们会处理它。然而,如果它真的是上面的代码,那么它只是代码中的一个结构错误。您需要提供更多的(“真实的”)代码,以便我们对如何处理这种情况给出正确的答案。我不想在运行时运行假设的检查器,而只是在运行前检查运行时是否有任何东西可能失败。总之,我找到了一个使用mypy(Python的静态类型检查器)的解决方案
code.py:9: error: Too few arguments for "func"
Found 1 error in 1 file (checked 1 source file)