Get item through ``__getitem__`` and cache the result.

        Args:
            item (str): name of package or module.

        Returns:
            Package/Module: the corresponding object.

def get(self, item):
        """
        Get item through ``__getitem__`` and cache the result.

        Args:
            item (str): name of package or module.

        Returns:
            Package/Module: the corresponding object.
        """
        if item not in self._item_cache:
            try:
                item = self.__getitem__(item)
            except KeyError:
                item = None
            self._item_cache[item] = item
        return self._item_cache[item]