개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다.
1월 31일(월)
Decorator
Decorator란?
- 데코레이터는 말 그대로 장식을 하기 위한 문법이다. (클로저를 사용하는 목적 중 하나가 '데코레이터 사용')
- 기존의 클래스나 함수를 수정하지 않고 기능을 덧붙일 수 있는 역할(기능)을 한다.
- 데코레이터를 정의하는 방법은 함수를 인자로 받는 클로저를 정의하고 그 안에 기능을 구현하면 된다.
- 참고로, 데코레이터를 사용하지 않고도 데코레이터를 사용한 코드와 동일한 기능을 하는 코드를 구현할 수 있다.
(참고 : 데코레이터 사용)
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 |
댓글