code: def get_used_in_func(node):
      '''Get names, but ignore variables names to the left hand side
      That is to say, in case of
         a = b + 1
      we consider b as "being accessed", while a is not.
      '''
      if isinstance(node, ast.FunctionDef):
          return {node.name: get_accessed(node.body)}
      names = {}
      for node in ast.iter_child_nodes(node):
          names.update(get_used_in_func(node))
      return namef get_used_in_func(node):
      '''Get names, but ignore variables names to the left hand side
      That is to say, in case of
         a = b + 1
      we consider b as "being accessed", while a is not.
      '''
      if isinstance(node, ast.FunctionDef):
          return {node.name: get_accessed(node.body)}
      names = {}
      for node in ast.iter_child_nodes(node):
          names.update(get_used_in_func(node))
      return names
docs: Get names, but ignore variables names to the left hand side
      That is to say, in case of
         a = b + 1
      we consider b as "being accessed", while a is not.