패스트캠퍼스 한 번에 끝내는 파이썬 웹 개발 초격차 패키지 pt2 - 데코레이터

정영찬·2022년 2월 11일
0

데코레이터

  • 함수의 앞, 뒤로 부가적인 기능을 넣어주고 싶을 때 사용한다.

사용 방법

  • 클로저를 이용해서 생성
  • 적용하고 싶은 함수앞에 @ 데코레이터를 이용해서 만든다.
# 데코레이터 생성 
def logger(func):
    def wrapper(arg):
        print("함수 시작")
        func(arg)
        print("함수 끝")
    return wrapper

@logger
def print_hello(name):
    print("hello", name)

@logger    
def print_bye(name):    
    print("bye", name)
  


print_hello('startcoding')
print_bye('fastcampus')

굳이 왜 이런걸..?

위에 구문을 보면 @logger 데코레이터를 추가 함으로써 함수에 출력되는 값 뿐만 아니라 함수의 시작과 끝을 알리는 문구를 출력하게 해준다. 만약에 이 데코레이터를 사용하지 않고 해당 함수에 문구를 하나하나 넣어야한다고 생각해보자, 한 두개 정도는 괜찮겠지만 만약 수십개를 넣어야 한다면 코드가 매우 지저분해질 것이다.
조금이나마 가독성을 높이기 위해 데코레이터를 사용한다.

profile
개발자 꿈나무

0개의 댓글