1
2def call_iter1(x):
3    """
4    >>> [ i for i in iter([1,2,3]) ]
5    [1, 2, 3]
6    >>> [ i for i in call_iter1([1,2,3]) ]
7    [1, 2, 3]
8    """
9    return iter(x)
10
11class Ints(object):
12    def __init__(self):
13        self.i = 0
14    def __call__(self):
15        self.i += 1
16        if self.i > 10:
17            raise ValueError
18        return self.i
19
20def call_iter2(x, sentinel):
21    """
22    >>> [ i for i in iter(Ints(), 3) ]
23    [1, 2]
24    >>> [ i for i in call_iter2(Ints(), 3) ]
25    [1, 2]
26    """
27    return iter(x, sentinel)
28