// education

이터레이터(Iterator), yield 제너레이터(Generator)와 데코레이터(Decorator)

메모리를 극도로 아끼면서 순회 데이터를 만드는 **제너레이터(Generator)**와 기존 함수의 코드를 고치지 않고 기능을 확장하는 데코레이터(Decorator) 패턴을 학습합니다.


1. 고급 문법 용어 사전 (Glossary)


2. yield 제너레이터 및 데코레이터 코드

import time

# 1. 실행 시간 측정 데코레이터
def timer_decorator(func):
    def wrapper(*args, **kwargs):
        start = time.time()
        result = func(*args, **kwargs)
        end = time.time()
        print(f"[{func.__name__}] 실행 시간: {(end - start)*1000:.2f}ms")
        return result
    return wrapper

# 2. yield 제너레이터
def count_down(n):
    while n > 0:
        yield n
        n -= 1

@timer_decorator
def run_generator():
    for number in count_down(3):
        print(f"카운트: {number}")

run_generator()
← 이전상속(Inheritance), 다형성 및 던더 매직 메소드(Dunder Methods) 다음 →파이썬 핵심 표준 라이브러리 (math, random, datetime, json, re)