def handle_While(node, **_):
last_node = node.body[-1]
unconditional_jump = type(last_node) in (ast.Break, ast.Raise, ast.Return)
if unconditional_jump and find_jumps(node.body) == 1:
if type(last_node) == ast.Break:
new_body = node.body[:-1]
else:
new_body = node.body
return ast.If(test=node.test, body=new_body, orelse=node.orelse)
else:
return node
评论列表
文章目录