변수가 iterable 하지 않은 정수일 때
a = 123 print(iter(a))
결과값: TypeError: 'int' object is not iterable
변수가 iterable한 str일 때
a = '123' print(iter(a))
결과값: <str_iterator object at 0x7fc73d6251f0>
__iter__
__iter__
를 가지고 있다.>> b = {1, 2, 3} >> dir(b) ['__and__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__iand__', '__init__', '__init_subclass__', '__ior__', '__isub__', '__iter__', '__ixor__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__or__', '__rand__', '__reduce__', '__reduce_ex__', '__repr__', '__ror__', '__rsub__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__xor__', 'add', 'clear', 'copy', 'difference', 'difference_update', 'discard', 'intersection', 'intersection_update', 'isdisjoint', 'issubset', 'issuperset', 'pop', 'remove', 'symmetric_difference', 'symmetric_difference_update', 'union', 'update'] >>c = `b.__iter__()` >>type(c) <class 'set_iterator'>
a = [5,6,7,8] a_iter = iter(a) print(next(a_iter)) print(next(a_iter)) print(next(a_iter)) print(next(a_iter)) print(next(a_iter))
결과값:
5
6
7
8
Traceback (most recent call last):
File "/Users/pro16/PycharmProjects/pycharm_test/hi.py", line 7, in
print(next(a_iter))
StopIteration
5,6,7,8 까지 출력하다가 리스트 안의 객체가 더이상 없어서 Error 발생
__next__
a = [5,6,7,8]
a_iter = iter(a)
print(a_iter.__next__())
print(a_iter.__next__())
print(a_iter.__next__())
print(a_iter.__next__())
print(a_iter.__next__())
결과값:
5
6
7
8
Traceback (most recent call last):
File "/Users/pro16/PycharmProjects/pycharm_test/hi.py", line 7, in <module>
print(a_iter.__next__())
StopIteration