yield함수 - generator함수

서현·2024년 8월 19일
0

파이썬

목록 보기
14/19
1. return
def range_r(num):
	for i in range(num):
    	print('r')
        return i
        
2. yield
def range_y(num):
	for i in range(num):
    	print('y')
        yield i

rf = range_r(9) 
yf = range_y(9)
>>>r

yield가 def함수 내에 위치해 있다면 파이썬은 이 함수로 generator를 만들려했다고 생각하고 취급
그래서 yf = range_y(9)는
generator(9)가 됩니다

yf를 실행시키려면 for문이 필요합니다

for item in yf:
	print('item = {}'.format(item))
#y
#item = 0
#y
#item = 1
...
#y
#item = 8

이와 같은 def + yield의 사용 예시
무한히 생성되는 generator를 만들고 싶을 때 만듦

# 1부터 1씩 증가하는 counter함수
def counter():
	i = 0
    while True:
    	i += 1
        yield i

이렇게 작성해 두고 counter함수를 사용하기 위해 아래의 코드를 실행합니다

#1부터 10까지 출력을 원함
c = counter()
for i in range(10):
	print(next(c))
    
print('last next = {}'.format(next(c)))

#1
#2
#..
#9
#10
#last next = 11

위와 같이 반복되는 함수가 되고
yield함수는 다음 숫자를 기억하고 있습니다


아래의 예시를 찾\

profile
서현이의 코드 생활 ദ്ദി ( ᵔ ᗜ ᵔ )

0개의 댓글