def visit_Slice(self, node):
"""
Slice(expr? lower, expr? upper, expr? step)
"""
if node.lower and node.upper and node.step:
""" <Python> [8, 9, 10, 11, 12, 13, 14][1:6:2]
<Ruby> [8, 9, 10, 11, 12, 13, 14][1...6].each_slice(2).map(&:first) """
return "%s...%s,each_slice(%s).map(&:first)" % (self.visit(node.lower),
self.visit(node.upper), self.visit(node.step))
if node.lower and node.upper:
return "%s...%s" % (self.visit(node.lower),
self.visit(node.upper))
if node.upper and not node.step:
return "0...%s" % (self.visit(node.upper))
if node.lower and not node.step:
return "%s..-1" % (self.visit(node.lower))
if not node.lower and not node.upper and not node.step:
return "0..-1"
raise NotImplementedError("Slice")
评论列表
文章目录