def visit_For(self, node):
"""
for i in 5: pass # range(5)
for i in 2^10: pass # range(2, 10)
for i in 1^100^5: pass # range(2, 10, 5)
"""
self.generic_visit(node)
it = node.iter
if isinstance(it, ast.Num):
node.iter = self.make_Call('range', [it])
elif self._is_range_op(it):
# two cases, 2^10 and 1^100^5
range_args = []
left = it.left
if self._is_range_op(left):
range_args.append(left.left)
range_args.append(left.right)
else:
range_args.append(left)
range_args.append(it.right)
node.iter = self.make_Call('range', range_args)
return node
评论列表
文章目录