728x90
반응형
* 본 포스팅은 주피터 노트북에서 진행하였다.
def test_generator():
yield 1
yield 2
yield 3
gen = test_generator()
type(gen)
next(gen) #1
next(gen) #2
for i in test_generator():
print(i)
def test_generator():
print('yield 1 전')
yield 1
print('yield 1 과 2 사이')
yield 2
print('yield 2 과 3 사이')
yield 3
print('yield 3 후')
for i in test_generator():
print(i)
yiled를 만나면 반환되지만 내용은 유지가 된다. 양보느낌
yiled를 보면 generator라고 생각하면 된다.
무한으로 generator 생성하기
def infinite_generator():
count=0
while True:
count+=1
yield count
gen = infinite_generator()
next(gen)
계속 누를 수록 숫자가 증가한다.
우리가 알고있는 리스트, Set, Dictionary의 표현식의 내부도 사실 generator 이다.
[x *x for x in [2,4,6]]
#[4, 16, 36]
print(type(x*x for x in [2,4,6]))
#<class 'generator'>
자바스크립트의 yield와 비교해보기
visual Studio Code 에서 진행하였다.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script>
function* idMaker(){ //자바스크립트 generator
var index=0;
shile(index<3)
yield index++
}
var gen = idMaker();
console.log(gen.next().value)
console.log(gen.next().value)
console.log(gen.next().value)
</script>
<title>Document</title>
</head>
<body>
</body>
</html>
728x90
반응형
'Data Analysis > web crawling' 카테고리의 다른 글
[Crawling] 요소에 접근하기 (0) | 2021.06.08 |
---|---|
[Crawling] 부모 태그 접근하기 / sibling / generator (0) | 2021.06.08 |
[Crawling] iterator 만들기 (0) | 2021.06.08 |
[Crawling] get,[] 차이 / 반복문 이용 (0) | 2021.06.08 |
[crawling] requests vs urllib / 파싱모듈 (0) | 2021.06.08 |