code: def _traverse(self, start_paths, traversal_path):
          
          assert len(traversal_path) >= 2
          assoc_class = traversal_path[0]
          far_class = traversal_path[1]
          total_next_paths = []
          for path in start_paths:
              next_paths = self._conn.AssociatorNames(
                  ObjectName=path,
                  AssocClass=assoc_class,
                  ResultClass=far_class)
              total_next_paths.extend(next_paths)
          traversal_path = traversal_path[2:]
          if traversal_path:
              total_next_paths = self._traverse(total_next_paths, traversal_path)
          return total_next_paths
docs: Traverse a multi-hop traversal path from a list of start instance
          paths, and return the resulting list of instance paths.
  
          Parameters:
            start_paths (list of CIMInstanceName): Instance paths to start
              traversal from.
            traversal_path (list of string): Traversal hops, where the list
              contains pairs of items: association class name, far end class
              name. Example: a 2-hop traversal is represented as
              `['A1', 'C1', 'A2', 'C2']`.
  
          Returns:
            List of CIMInstanceName: Instances at the far end of the traversal.