본문 바로가기
기타

TIL - 22.01.31

by DGK 2022. 1. 31.

 

개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다.

 

1월 31일(월)


Decorator

Decorator란?

 

  1. 데코레이터는 말 그대로 장식을 하기 위한 문법이다. (클로저를 사용하는 목적 중 하나가 '데코레이터 사용')
  2. 기존의 클래스나 함수를 수정하지 않고 기능을 덧붙일 수 있는 역할(기능)을 한다.
  3. 데코레이터를 정의하는 방법은 함수를 인자로 받는 클로저를 정의하고 그 안에 기능을 구현하면 된다.
  4. 참고로, 데코레이터를 사용하지 않고도 데코레이터를 사용한 코드와 동일한 기능을 하는 코드를 구현할 수 있다.

 

(참고 : 데코레이터 사용)

def deco(func):
    def wrapper():
        print("before")
        ret = func()
        print("after")
        return ret
    return wrapper

@deco
def base():
    print("base func")


base()

'''
출력 :
before
base func
after

'''

 

(참고 : 데코레이터 사용X but 위와 동일한 기능)

def deco(func):
    def wrapper():
        print("before")
        func()
        print("after")
        return None
    return wrapper

def base():
    print("base func")


f = deco(base)
f()

'''
출력 :
before
base func
after

'''

 

 

'기타' 카테고리의 다른 글

TIL - 22.02.02  (0) 2022.02.02
TIL - 22.02.01  (0) 2022.02.02
TIL - 22.01.30  (0) 2022.01.30
TIL - 22.01.29  (0) 2022.01.29
TIL - 22.01.28  (0) 2022.01.29

댓글