Data Analysis/web crawling
[Crawling] iterator 만들기
아이스베어 :)
2021. 6. 8. 10:55
728x90
반응형
class IterClass(object):
def __init__(self,start,last):
self.currnet = start
self.max = last
def __iter__(self): #없으면 'object is not iterable' 예외 발생
return self
def __next__(self):
if self.currnet > self.max: #current의 값이 __next__ 호출시 마다 1씩 증가되고 10이 되면 여기 if문에 도달하여 예외 발생됨
raise StopIteration
else:
self.currnet += 1
return self.currnet -1 #보여주기
n_list1 = IterClass(1,10)
type(n_list1)
n_list1.__next__() #1
n_list1.__next__() #2
n_list1.__next__() #3
for 문으로 바꾸면
for i in range(0,10):
print(n_list1.__next__())
배열이나 tuple list는 iterable 가능한 객체이다.
내부적으로자동으로 advancedfor 같은 구문에서 next가 자동으로 호출된다.
마지막에 도달하면 종료되는 것이다.
728x90
반응형