반응형
데코레이터란 데코레이터는 기존의 함수나 클래스를 수정하지 않고 그 기능을 확장하거나 변경하는 방법을 제공합니다. 이는 함수형 프로그래밍의 아이디어 중 하나로, 코드를 재사용하고 가독성을 향상시키는 데 도움이 됩니다.
데코레이터의 구조
데코레이터는 보통 함수로 정의되며, 다른 함수를 인수로 받아 처리한 후 그 함수를 반환합니다. 데코레이터를 사용하여 함수에 추가적인 기능을 덧붙일 수 있습니다.
def decorator_function(func):
def wrapper():
print("Before calling the function")
func()
print("After calling the function")
return wrapper
@decorator_function
def say_hello():
print("Hello, world!")
say_hello()
출력 :
Before calling the function
Hello, world!
After calling the function
위의 코드에서 decorator_function은 데코레이터 함수로, say_hello 함수를 인수로 받아 그 기능을 수정하고 있는 것을 볼 수 있습니다.
데코레이터의 장점
- 재사용성: 데코레이터를 사용하면 코드의 재사용성을 높일 수 있습니다. 동일한 기능을 여러 함수에 적용하려면 데코레이터를 각 함수에 적용하면 됩니다.
- 가독성: 데코레이터를 사용하면 함수의 핵심 기능과 추가 기능을 분리하여 코드를 더 읽기 쉽게 만듭니다.
- 유연성: 데코레이터를 사용하여 함수의 동작을 동적으로 변경할 수 있습니다. 이는 코드를 더 유연하고 확장 가능하게 만듭니다.
데코레이터의 활용
- 로깅(logging)
- 인증 및 권한 부여(authentication, authorization)
- 성능 측정
- 캐싱(caching)
- 예외 처리
반응형
'python' 카테고리의 다른 글
[python] first-class object (일급 객체) (0) | 2024.04.09 |
---|---|
python Unlimited Arguments(무제한 인자) (0) | 2024.04.08 |
python 자주 사용하는 문자열 함수 (0) | 2024.04.02 |
Python Dictionary (0) | 2024.03.28 |
slice notation (0) | 2024.03.27 |