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