1. 데코레이터란 무엇인가?
데코레이터는 Python의 고급 기능 중 하나로, 함수나 메서드의 동작을 수정하거나 확장하는 데 사용됩니다. 데코레이터는 '@' 심볼로 표시되며, 수정하려는 함수 바로 위에 위치합니다.
def my_decorator(func):
def wrapper():
print("Something is happening before the function is called.")
func()
print("Something is happening after the function is called.")
return wrapper
@my_decorator
def say_hello():
print("Hello!")
say_hello()
위 코드에서 `my_decorator`는 데코레이터 함수입니다. `say_hello` 함수는 `my_decorator`에 의해 데코레이트되었고, 그 결과 `say_hello` 함수가 호출되기 전후로 추가적인 동작이 수행됩니다.
2. 제너레이터란 무엇인가?
제너레이터는 Python의 다른 고급 기능 중 하나로, 반복 가능한 객체를 생성하는 함수입니다. 일반 함수는 실행이 종료되면 그 상태를 유지하지 않지만, 제너레이터는 상태를 유지하여 필요할 때마다 값을 생성(yield)합니다.
def count_up_to(n):
count = 1
while count <= n:
yield count
count += 1
for number in count_up_to(5):
print(number)
위 코드에서 `count_up_to` 함수는 제너레이터 함수입니다. `yield` 키워드는 함수가 제너레이터임을 나타냅니다. 이 함수를 반복할 때마다 다음 숫자를 생성합니다.
3. 데코레이터와 제너레이터의 활용
데코레이터와 제너레이터는 코드를 더 효율적이고 유연하게 만드는 데 큰 도움이 됩니다. 예를 들어, 데코레이터는 로깅, 타이밍, 레이트 리미팅, 메모이제이션 등과 같은 재사용 가능한 기능을 쉽게 추가할 수 있게 해줍니다.
제너레이터는 대용량 데이터를 처리할 때 유용합니다. 메모리에 한 번에 모든 데이터를 로드할 필요 없이, 필요한 만큼만 데이터를 생성하므로 메모리를 효율적으로 사용할 수 있습니다.
4. 결론
Python의 고급 기능인 데코레이터와 제너레이터는 프로그래밍을 더욱 효과적이고 즐겁게 만듭니다
'IT > Python' 카테고리의 다른 글
Python 프로그래밍: if, else, elif (1) | 2023.05.16 |
---|---|
Python 프로그래밍: 시퀀스 자료형 활용하기, 딕셔너리 사용하기 (0) | 2023.05.16 |
Python 프로그래밍: 불과 비교, 논리 연산자, 문자열 사용하기, 리스트와 튜플 사용하기 (0) | 2023.05.15 |
Python 프로그래밍: 클래스와 예외 처리에 대한 이해 (0) | 2023.05.15 |
Python 프로그래밍: 조건문, 반복문 및 함수 (0) | 2023.05.15 |