def generic_visit(self, node):
if self.last_node is not None and hasattr(node, 'col_offset'):
enode = ast.Expression(self.last_node)
lambda_code = compile(enode, '<unused>', 'eval')
lines = self.lines[self.last_node.lineno-1:node.lineno]
lines[-1] = lines[-1][:node.col_offset]
lines[0] = lines[0][self.last_node.col_offset:]
lambda_body_text = ' '.join(l.rstrip(' \t\\').strip() for l in lines)
while lambda_body_text:
try:
code = compile(lambda_body_text, '<unused>', 'eval')
if len(code.co_code) == len(lambda_code.co_code):
break
except SyntaxError:
pass
lambda_body_text = lambda_body_text[:-1]
self.lambdas.append((lambda_code, lambda_body_text.strip()))
self.last_node = None
super().generic_visit(node)
评论列表
文章目录