반응형

데코레이터란 데코레이터는 기존의 함수나 클래스를 수정하지 않고 그 기능을 확장하거나 변경하는 방법을 제공합니다. 이는 함수형 프로그래밍의 아이디어 중 하나로, 코드를 재사용하고 가독성을 향상시키는 데 도움이 됩니다.

데코레이터의 구조

데코레이터는 보통 함수로 정의되며, 다른 함수를 인수로 받아 처리한 후 그 함수를 반환합니다. 데코레이터를 사용하여 함수에 추가적인 기능을 덧붙일 수 있습니다.

 

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 함수를 인수로 받아 그 기능을 수정하고 있는 것을 볼 수 있습니다.

데코레이터의 장점

  1. 재사용성: 데코레이터를 사용하면 코드의 재사용성을 높일 수 있습니다. 동일한 기능을 여러 함수에 적용하려면 데코레이터를 각 함수에 적용하면 됩니다.
  2. 가독성: 데코레이터를 사용하면 함수의 핵심 기능과 추가 기능을 분리하여 코드를 더 읽기 쉽게 만듭니다.
  3. 유연성: 데코레이터를 사용하여 함수의 동작을 동적으로 변경할 수 있습니다. 이는 코드를 더 유연하고 확장 가능하게 만듭니다.

데코레이터의 활용

  • 로깅(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

+ Recent posts