iter()함수는 일반 함수나 콜러블 객체로부터 반복자를 생성하기 위해 두 개의 인수를 전달해서 호출할 수 있다.
첫 번째 인수는 값을 생성하기 위해서 인수없이 반복적으로 호출되는 콜러블이다.
두 번째 인수는 구분 표시로서, 콜러블에서 이 값이 반환되면 반복자가 StopIteration 예외를 발생시키도록 만든다.
def d6():
return randint(1,6)
d6_iter = iter(d6,1)
d6_iter
for roll in d6_iter:
print(roll
iter()함수는 callable_iterator 객체를 반환하고, for 루프에서 1은 구분 표시이므로 아무리 오래 실행하더라도 결코 1을 출력하지 않는다.
with open('mydata.txt') as fp:
for line in iter(fp.readline, ''):
process_line(line)