Python: 如何在不执行代码的情况下验证函数调用

Python: How to validate function calls without executing code

我想验证 python 函数调用是否有效而不执行它们。

假设我有以下代码:

def func(a, b):
    print(a, b)

cond = True

if cond:
    func(1, 2)
else:
    func(1)

如果cond = True,那么一切都会运行就好了,但是如果cond = False,那么它将失败并抛出以下错误:

TypeError: func() takes exactly 2 arguments (1 given)

我需要知道是否所有函数调用都有效,而不必调用任何函数。

可以使用 mypy.

预先检查此类错误
  1. 安装 mypy python3 -m pip install -U mypy.
  2. 用于检查 Python3 代码 运行 mypy code.py,以及用于 Python2 运行 mypy --py2 code.py.
  3. 它会抛出以下错误:
code.py:9: error: Too few arguments for "func"
Found 1 error in 1 file (checked 1 source file)