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
반응형
'Data Analysis > web crawling' 카테고리의 다른 글
[Crawling] 부모 태그 접근하기 / sibling / generator (0) | 2021.06.08 |
---|---|
[Crawling] Generator 만들기 / 자바스크립트 yield와 비교 (0) | 2021.06.08 |
[Crawling] get,[] 차이 / 반복문 이용 (0) | 2021.06.08 |
[crawling] requests vs urllib / 파싱모듈 (0) | 2021.06.08 |
[Crawling] 크롤링 get요청, post요청하기 (0) | 2021.06.07 |