def match_id(self, id_, node):
if isinstance(node, (ast.ClassDef, ast.FunctionDef)):
return node.name == id_
if isinstance(node, ast.Name):
return node.id == id_
if isinstance(node, ast.Attribute):
return node.attr == id_
if isinstance(node, ast.Assign):
for target in node.targets:
if hasattr(target, 'id'):
if target.id == id_:
return True
if hasattr(target, 'elts'):
if id_ in self._extract_names_from_tuple(target):
return True
elif isinstance(target, ast.Subscript):
if hasattr(target.value, 'id'):
if target.value.id == id_:
return True
if isinstance(node, ast.Call):
if isinstance(node.func, ast.Name) and node.func.id == id_:
return True
if id_ == 'print' \
and hasattr(ast, 'Print') and isinstance(node, ast.Print):
# Python 2.x compatibility
return True
评论列表
文章目录