當前位置: 首頁>>代碼示例>>Python>>正文


Python ast.Break方法代碼示例

本文整理匯總了Python中ast.Break方法的典型用法代碼示例。如果您正苦於以下問題:Python ast.Break方法的具體用法?Python ast.Break怎麽用?Python ast.Break使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在ast的用法示例。


在下文中一共展示了ast.Break方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: CONTINUE

# 需要導入模塊: import ast [as 別名]
# 或者: from ast import Break [as 別名]
def CONTINUE(self, node):
        # Walk the tree up until we see a loop (OK), a function or class
        # definition (not OK), for 'continue', a finally block (not OK), or
        # the top module scope (not OK)
        n = node
        while hasattr(n, 'parent'):
            n, n_child = n.parent, n
            if isinstance(n, LOOP_TYPES):
                # Doesn't apply unless it's in the loop itself
                if n_child not in n.orelse:
                    return
            if isinstance(n, (ast.FunctionDef, ast.ClassDef)):
                break
            # Handle Try/TryFinally difference in Python < and >= 3.3
            if hasattr(n, 'finalbody') and isinstance(node, ast.Continue):
                if n_child in n.finalbody:
                    self.report(messages.ContinueInFinally, node)
                    return
        if isinstance(node, ast.Continue):
            self.report(messages.ContinueOutsideLoop, node)
        else:  # ast.Break
            self.report(messages.BreakOutsideLoop, node) 
開發者ID:AtomLinter,項目名稱:linter-pylama,代碼行數:24,代碼來源:checker.py

示例2: __exit_scope

# 需要導入模塊: import ast [as 別名]
# 或者: from ast import Break [as 別名]
def __exit_scope(self) -> ast.stmt:
        """Create the appropriate scope exiting statement.

        The documentation only shows one level and always uses
        'return False' in examples.

        'raise AltFalse()' within a try.
        'break' within a loop.
        'return False' otherwise.
        """
        if self.in_optional:
            return ast.Pass()
        if self.in_try:
            return ast.Raise(
                ast.Call(ast.Name('AltFalse', ast.Load()), [], [], None, None),
                None)
        if self.in_loop:
            return ast.Break()
        return ast.Return(ast.Name('False', ast.Load()))

    #TODO(bps): find a better name to describe what this does 
開發者ID:LionelAuroux,項目名稱:pyrser,代碼行數:23,代碼來源:topython.py

示例3: CONTINUE

# 需要導入模塊: import ast [as 別名]
# 或者: from ast import Break [as 別名]
def CONTINUE(self, node):
        # Walk the tree up until we see a loop (OK), a function or class
        # definition (not OK), for 'continue', a finally block (not OK), or
        # the top module scope (not OK)
        n = node
        while hasattr(n, '_pyflakes_parent'):
            n, n_child = n._pyflakes_parent, n
            if isinstance(n, LOOP_TYPES):
                # Doesn't apply unless it's in the loop itself
                if n_child not in n.orelse:
                    return
            if isinstance(n, (ast.FunctionDef, ast.ClassDef)):
                break
            # Handle Try/TryFinally difference in Python < and >= 3.3
            if hasattr(n, 'finalbody') and isinstance(node, ast.Continue):
                if n_child in n.finalbody and not PY38_PLUS:
                    self.report(messages.ContinueInFinally, node)
                    return
        if isinstance(node, ast.Continue):
            self.report(messages.ContinueOutsideLoop, node)
        else:  # ast.Break
            self.report(messages.BreakOutsideLoop, node) 
開發者ID:PyCQA,項目名稱:pyflakes,代碼行數:24,代碼來源:checker.py

示例4: check_for_b012

# 需要導入模塊: import ast [as 別名]
# 或者: from ast import Break [as 別名]
def check_for_b012(self, node):
        def _loop(node, bad_node_types):
            if isinstance(node, (ast.AsyncFunctionDef, ast.FunctionDef)):
                return

            if isinstance(node, (ast.While, ast.For)):
                bad_node_types = (ast.Return,)

            elif isinstance(node, bad_node_types):
                self.errors.append(B012(node.lineno, node.col_offset))

            for child in ast.iter_child_nodes(node):
                _loop(child, bad_node_types)

        for child in node.finalbody:
            _loop(child, (ast.Return, ast.Continue, ast.Break)) 
開發者ID:PyCQA,項目名稱:flake8-bugbear,代碼行數:18,代碼來源:bugbear.py

示例5: _handle_ast_list

# 需要導入模塊: import ast [as 別名]
# 或者: from ast import Break [as 別名]
def _handle_ast_list(self, ast_list):
        """
        Find unreachable nodes in the given sequence of ast nodes.
        """
        for index, node in enumerate(ast_list):
            if isinstance(
                node, (ast.Break, ast.Continue, ast.Raise, ast.Return)
            ):
                try:
                    first_unreachable_node = ast_list[index + 1]
                except IndexError:
                    continue
                class_name = node.__class__.__name__.lower()
                self._define(
                    self.unreachable_code,
                    class_name,
                    first_unreachable_node,
                    last_node=ast_list[-1],
                    message="unreachable code after '{class_name}'".format(
                        **locals()
                    ),
                    confidence=100,
                )
                return 
開發者ID:jendrikseipp,項目名稱:vulture,代碼行數:26,代碼來源:core.py

示例6: _jump_break_loop

# 需要導入模塊: import ast [as 別名]
# 或者: from ast import Break [as 別名]
def _jump_break_loop(instr, queue, stack, body, context):
    if context.top_of_loop is None:
        raise DecompilationError("BREAK_LOOP outside of loop.")
    body.append(ast.Break()) 
開發者ID:llllllllll,項目名稱:codetransformer,代碼行數:6,代碼來源:_343.py

示例7: p_break_stmt

# 需要導入模塊: import ast [as 別名]
# 或者: from ast import Break [as 別名]
def p_break_stmt(p):
    '''break_stmt : BREAK'''
    #                   1
    p[0] = ast.Break(rule=inspect.currentframe().f_code.co_name, **p[1][1])

# continue_stmt: 'continue' 
開發者ID:histogrammar,項目名稱:histogrammar-python,代碼行數:8,代碼來源:hgawk_grammar.py

示例8: gen_statement

# 需要導入模塊: import ast [as 別名]
# 或者: from ast import Break [as 別名]
def gen_statement(self, statement):
        """ Generate code for a statement """
        if isinstance(statement, list):
            for inner_statement in statement:
                self.gen_statement(inner_statement)
        else:
            with self.use_location(statement):
                if isinstance(statement, ast.Pass):
                    pass  # No comments :)
                elif isinstance(statement, ast.Return):
                    self.gen_return(statement)
                elif isinstance(statement, ast.If):
                    self.gen_if(statement)
                elif isinstance(statement, ast.While):
                    self.gen_while(statement)
                elif isinstance(statement, ast.Break):
                    self.gen_break(statement)
                elif isinstance(statement, ast.Continue):
                    self.gen_continue(statement)
                elif isinstance(statement, ast.For):
                    self.gen_for(statement)
                elif isinstance(statement, ast.Assign):
                    self.gen_assign(statement)
                elif isinstance(statement, ast.Expr):
                    self.gen_expr(statement.value)
                elif isinstance(statement, ast.AugAssign):
                    self.gen_aug_assign(statement)
                else:  # pragma: no cover
                    self.not_impl(statement) 
開發者ID:windelbouwman,項目名稱:ppci,代碼行數:31,代碼來源:python2ir.py

示例9: translate_break

# 需要導入模塊: import ast [as 別名]
# 或者: from ast import Break [as 別名]
def translate_break(self, exp):
        if len(exp) > 1:
            raise MochiSyntaxError(exp, self.filename)

        return (), ast.Break(lineno=exp[0].lineno,
                             col_offset=0) 
開發者ID:i2y,項目名稱:mochi,代碼行數:8,代碼來源:translation.py

示例10: _tail_recursion_optimize

# 需要導入模塊: import ast [as 別名]
# 或者: from ast import Break [as 別名]
def _tail_recursion_optimize(self, func_ast):
        transformer = self.SelfTailRecursiveCallTransformer(func_ast)
        optimized_func_ast = transformer.visit(func_ast)

        if self.SelfTailRecursiveCallTransformer.optimized:
            if IS_PYPY:
                optimized_func_ast.body = [ast.While(test=ast.Name(id='True',
                                                                   ctx=ast.Load(),
                                                                   lineno=0,
                                                                   col_offset=0),
                                                     body=optimized_func_ast.body + [ast.Break(lineno=0,
                                                                                               col_offset=0)],
                                                     orelse=[],
                                                     lineno=0,
                                                     col_offset=0)]
            else:
                optimized_func_ast.body = [ast.While(test=ast.Num(n=1,
                                                                  lineno=0,
                                                                  col_offset=0),
                                                     body=optimized_func_ast.body + [ast.Break(lineno=0,
                                                                                               col_offset=0)],
                                                     orelse=[],
                                                     lineno=0,
                                                     col_offset=0)]
            self.SelfTailRecursiveCallTransformer.optimized = False
            return optimized_func_ast
        else:
            return func_ast 
開發者ID:i2y,項目名稱:mochi,代碼行數:30,代碼來源:translation.py

示例11: visit_Break

# 需要導入模塊: import ast [as 別名]
# 或者: from ast import Break [as 別名]
def visit_Break(self, br: ast.Break, _ctx: CPSTransformerContext) -> VisitReturnT:
        return br, [] 
開發者ID:NetSys,項目名稱:kappa,代碼行數:4,代碼來源:cps.py

示例12: visit_Break

# 需要導入模塊: import ast [as 別名]
# 或者: from ast import Break [as 別名]
def visit_Break(self, br: ast.Break) -> ActionsT:
        return [br] 
開發者ID:NetSys,項目名稱:kappa,代碼行數:4,代碼來源:flatten.py

示例13: visit_Break

# 需要導入模塊: import ast [as 別名]
# 或者: from ast import Break [as 別名]
def visit_Break(self, _br: ast.Break) -> None:
        pass 
開發者ID:NetSys,項目名稱:kappa,代碼行數:4,代碼來源:liveness.py

示例14: _check_break_or_continue_in_finally

# 需要導入模塊: import ast [as 別名]
# 或者: from ast import Break [as 別名]
def _check_break_or_continue_in_finally(self, node: ast.Try) -> None:
        has_wrong_nodes = any(
            is_contained(line, (ast.Break, ast.Continue))
            for line in node.finalbody
        )

        if has_wrong_nodes:
            self.add_violation(LoopControlFinallyViolation(node)) 
開發者ID:wemake-services,項目名稱:wemake-python-styleguide,代碼行數:10,代碼來源:exceptions.py

示例15: has_break

# 需要導入模塊: import ast [as 別名]
# 或者: from ast import Break [as 別名]
def has_break(node: AnyLoop) -> bool:
    """Tells whether or not given loop has ``break`` keyword in its body."""
    closest_loop = None

    for sub in ast.walk(node):
        if _is_nested_loop(node, sub):
            closest_loop = sub

        if isinstance(sub, ast.Break):
            if not closest_loop or not walk.is_contained_by(sub, closest_loop):
                return True
    return False 
開發者ID:wemake-services,項目名稱:wemake-python-styleguide,代碼行數:14,代碼來源:loops.py


注:本文中的ast.Break方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。