def __init__(self, *args):
        # type: (Any) -> None
        """__init__(o, sentinel=None)"""
        self._iterable = iter(*args)        # type: Iterable
        self._cache = collections.deque()   # type: collections.deque
        if len(args) == 2:
            self.sentinel = args[1]
        else:
            self.sentinel = object()