[Python] ์ƒ์„ฑ๊ธฐ(generator)

์ด๊ฑด c#์˜ yield return๊ณผ ํก์‚ฌํ•œ ๊ธฐ๋Šฅ์ด๋‹ค.

๋ณดํ†ต ํ•จ์ˆ˜์—์„œ return์„ ํ•˜๋ฉด ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๊ณ  ํ•จ์ˆ˜๋Š” ์•„์˜ˆ ์ฃฝ์–ด๋ฒ„๋ฆฐ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ํŒŒ์ด์ฌ์—์„œ yield๋ฅผ ์“ฐ๋ฉด ์ด๊ฒŒ ๊ฐ’์€ ๋ฐ˜ํ™˜์„ ํ•˜๋Š”๋ฐ ํ•จ์ˆ˜๊ฐ€ ์ฃฝ์ง€ ์•Š๊ณ  ๋ฐ˜ํ™˜ ์‹œ์˜ ์ƒํƒœ๊ฐ’์„ ์ €์žฅํ•œ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์ฃฝ์„๋•Œ๊นŒ์ง€ ๊ณ„์† ๋ถ€๋ฅผ ์ˆ˜๊ฐ€ ์žˆ๋‹ค.

์•„๋ž˜๋Š” ์นด์šดํŠธ๋‹ค์šด์„ ํ•ด์ฃผ๋Š” ์ƒ์„ฑ๊ธฐ๋ฅผ ๊ตฌํ˜„ํ•œ ์ฝ”๋“œ๋‹ค. image

image ์นด์šดํŠธ๋ฅผ 3์œผ๋กœ ์„ค์ •ํ•œ ์ƒ์„ฑ๊ธฐ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
์ƒ์„ฑํ•  ๋•Œ๋Š” ์•„๋ฌด๊ฒƒ๋„ ์‹คํ–‰๋˜์ง€ ์•Š๋Š”๋‹ค.

๊ทธ๋ฆฌ๊ณ  next๋ฅผ ๋ถ€๋ฅด๋ฉด ์ด์ œ yield๋ฅผ ํ• ๋•Œ๊นŒ์ง€๋งŒ ๋Œ๊ณ , yield๋ฅผ ํ•˜๋ฉด ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์—ฌ๊ธฐ์„  ๋ฐ˜ํ™˜๊ฐ’์„ ์“ฐ์ง€ ์•Š์•˜์œผ๋‹ˆ ์ข…๋ฃŒ๋งŒ ํ•œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋‹ค์‹œ next๋ฅผ ๋ถ€๋ฅด๋ฉด ์ €๋ฒˆ ์ƒํƒœ๋ฅผ ์ด์–ด์„œ ์‹คํ–‰ํ•˜๊ณ .. ๊ณ„์† ๋ฐ˜๋ณตํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ˜•์‹์œผ๋กœ ๋ฐ”๊พธ๋ฉด ์ด๋ ‡๊ฒŒ ๋œ๋‹ค. image

image


๊ทธ๋ฆฌ๊ณ  ๋ฒ”์œ„ for ๋ฃจํ”„๋กœ ๋Œ๋ฆด ์ˆ˜๋„ ์žˆ๋‹ค.
์ €๊ฒŒ ์‚ฌ์‹ค ๋ฐ˜๋ณต์ž ๊ธฐ๋ฐ˜์ด๋ผ์„œ.. image

image ์ด๋Ÿฌ๋ฉด ๋‹ค ๋ฐ˜ํ™˜๊ฐ’์„ ๋ฐ›์•„์˜จ๋‹ค.


์ด๊ฒŒ ๋‹ค์ธ๊ฒƒ๊ฐ™๋‹ค.