def visit_FunctionDef(self, node): if len(self.locals) > 1: self.locals[-1].add(node.name) self.names.add(node.name) # process defaults *before* defining parameters node.args.defaults = tuple(self.visit(x) for x in node.args.defaults) if node.args.args: argnames = [arg.id for arg in node.args.args] self.locals.append(set(argnames)) argnames = set(argnames) newnames = argnames.difference(self.names) self.names.update(newnames) try: return ASTTransformer.visit_FunctionDef(self, node) finally: if node.args.args: self.locals.pop() self.names -= newnames
def visit_FunctionDef(self, node): if len(self.locals) > 1: self.locals[-1].add(node.name) self.names.add(node.name) # process defaults *before* defining parameters node.args.defaults = tuple( self.visit(x) for x in node.args.defaults) if node.args.args: argnames = [arg.id for arg in node.args.args] self.locals.append(set(argnames)) argnames = set(argnames) newnames = argnames.difference(self.names) self.names.update(newnames) try: return ASTTransformer.visit_FunctionDef(self, node) finally: if node.args.args: self.locals.pop() self.names -= newnames