λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
IT/Python

[Python] λ¬Έμžμ—΄μ„ 전달 λ°›μ•„μ„œ 문자 ν•˜λ‚˜μ”© μΆ”μΆœν•˜μ—¬ λ³€ν™˜ν•˜λŠ” μ΄ν„°λ ˆμ΄ν„°(Iterator) μƒμ„±ν•˜κΈ°

by ITyranno 2023. 11. 18.
728x90
λ°˜μ‘ν˜•

 

 

 

ν”„λ‘œκ·Έλž˜λ° 세계λ₯Ό νƒκ΅¬ν•©μ‹œλ‹€.

 

 

 

 

λ¬Έμžμ—΄μ„ μ „달 λ°›μ•„μ„œ λ¬Έμž ν•˜λ‚˜μ”© μΆ”μΆœν•˜μ—¬ λ³€ν™˜ν•˜λŠ” μ΄ν„°λ ˆμ΄ν„°(Iterator) μƒμ„±ν•˜κΈ°

 

 

 

<μž‘μ„± μ½”λ“œ>

 

### μ΄ν„°λ ˆμ΄ν„° 클래슀 μƒμ„±ν•΄μ„œ Hello 각 단어 좜λ ₯ν•˜κΈ°
# - 클래슀 이름 : StringIterator
# - μž„μ˜ λ¬Έμžμ—΄μ„ λ°›μ•„μ„œ μ²˜λ¦¬ν•©λ‹ˆλ‹€.
# - μž„μ˜ λ¬Έμžμ—΄μ€ μ™ΈλΆ€μ—μ„œ 클래슀 μƒμ„±μ‹œ λ„£μ–΄μ€λ‹ˆλ‹€.

class StringIterator:
    ### 클래슀 μƒμ„±μž
    def __init__(self, p_text) :
        # - nextν•¨μˆ˜μ—μ„œ 1μ”© μ¦κ°€μ‹œν‚€λ©΄μ„œ 반볡 쑰건에 μ‚¬μš©ν•  λ³€μˆ˜
        self.index = 0

        # - λ°›μ•„μ˜¨ λ¬Έμžμ—΄
        self.text = p_text

    ### λ°˜λ³΅μˆ˜ν–‰μ„ μœ„ν•œ iter ν•¨μˆ˜ μ •μ˜
    def __iter__(self) :
        return self

    ### ν•œκ±΄ ν•œκ±΄ 처리λ₯Ό μœ„ν•œ next ν•¨μˆ˜ μ •μ˜
    def __next__(self) :
        if self.index <  len(self.text) :
            ### λ¬Έμžμ—΄μ—μ„œ 문자 ν•˜λ‚˜μ”© μΆ”μΆœν•˜κΈ°
            result = self.text[self.index]
            self.index += 1
            return result
        else :
            raise StopIteration

 

 

### μ΄ν„°λ ˆμ΄ν„° κΈ°λŠ₯ μ‚¬μš©ν•˜κΈ°
# λ°˜λ³΅λ¬Έμ„ μ΄μš©ν•΄μ„œ 전체 λ°˜λ³΅ν•˜κΈ°
# - 클래슀 μƒμ„±ν•˜κΈ°
msg = "Hello"
string_iter = StringIterator(msg)

 

 

### λ°˜λ³΅λ¬Έμ„ μ΄μš©ν•΄μ„œ 전체 μΆ”μΆœν•˜κΈ°
for char in string_iter :
    print(char)

 

 

 

<μ‹€ν–‰ ν™”λ©΄>

 

 

 

 

 

 

 

728x90
λ°˜μ‘ν˜•

loading