def _get_components(self, *component_types: Type)-> Iterable[Tuple[int, ...]]:
entity_db = self._entities<EOL>comp_db = self._components<EOL>try:<EOL><INDENT>for entity in set.intersection(*[comp_db[ct] for ct in component_types]):<EOL><INDENT>yield entity, [entity_db[entity][ct] for ct in component_types]<EOL><DEDENT><DEDENT>except KeyError:<EOL><INDENT>pass<EOL><DEDENT>
Get an iterator for Entity and multiple Component sets.

        :param component_types: Two or more Component types.
        :return: An iterator for Entity, (Component1, Component2, etc)
        tuples.