반응형
물론이죠! 데코레이터에 대한 자세한 설명과 예제를 아래에 제공하겠습니다.
데코레이터(Decorator)란?
데코레이터는 파이썬의 고급 기능 중 하나로, 기존의 함수나 메서드에 추가 기능을 부여하기 위해 사용합니다. 데코레이터는 함수를 인자로 받아 새로운 함수를 반환하며, @
기호를 사용하면 기존 함수에 쉽게 적용할 수 있습니다.
데코레이터의 작동 원리
- 함수를 인자로 받음: 데코레이터는 다른 함수를 인자로 받습니다.
- 새로운 함수를 반환: 데코레이터 내부에서 새로운 함수를 정의하고 반환합니다.
- 원래 함수의 기능 보존: 데코레이터는 원래 함수의 기능을 그대로 유지하면서 새로운 기능을 추가합니다.
데코레이터 예시
아래의 코드는 간단한 데코레이터의 예시입니다.
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()
출력 결과
Something is happening before the function is called.
Hello!
Something is happening after the function is called.
정리
- 함수 변경: 데코레이터를 사용하면 원래 함수를 변경하지 않고 새로운 기능을 추가할 수 있습니다. 이를 통해 코드의 재사용성과 유지 보수가 용이해집니다.
@
기호 사용:@
기호는 데코레이터를 적용하기 위한 문법 설탕(syntactic sugar)으로, 데코레이터 함수를 직접 호출하는 것보다 코드를 간결하게 만듭니다.
데코레이터는 로깅, 권한 확인, 캐싱 등 다양한 상황에서 유용하게 사용될 수 있으며, 파이썬 웹 프레임워크에서도 자주 활용됩니다.
반응형
댓글