astmatch.py 文件源码

python
阅读 29 收藏 0 点赞 0 评论 0

项目:pyq 作者: caioariede 项目源码 文件源码
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
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号