我正在使用 Python 的 Astroid 包进行 Pylint 项目。我想知道是否有一种通用且方便的方法来使用 Astroid 检索 if 语句的条件分支数
例如,对于语句:
如果(分支 1 和分支 2):通过
我想要返回值 2。
我找到了一种天真的方法来做到这一点astroid
:
def _has_one_condition(node):
return isinstance(node, astroid.Compare)
def _has_2_conditions(node):
return (
isinstance(node, astroid.BoolOp)
and len(node.values) == 2
and isinstance(node.values[0], astroid.Compare)
and isinstance(node.values[1], astroid.Compare)
)
我正在寻找一种更通用的方法来做到这一点astroid