Study/FastCampus
[python] Decolator - ①
상꼬
2021. 5. 6. 15:39
728x90
반응형
- Decolator : 함수를 받아 명령을 추가한 뒤 이를 다시 함수의 형태로 반환하는 함수
- 함수의 내부를 수정하지 않고 기능에 변화를 주고 싶을 때 사용하며, 일반적으로 함수의 전처리나 후처리에 대한 필요가 있을 때 사용을 한다. 또한, Decolator를 이용하여 반복을 줄일 수 있다.
예를 들어 아래와 같은 함수가 정의되어 있다고 가정을 하자.
def plus(a, b):
print("start") # code 1
result = a + b # code 2
print(f"result : {result}") # code 3
return result
def minus(a, b):
print("start") # code 1
result = a - b # code 4
print(f"result : {result}") # code 3
return result
여기서 중복되는 code 1, 3을 데코레이터를 이용하면 다음과 같이 바뀔 수 있다.
def disp(func):
def wrapper(*args, **kwargs):
print("start") # code 1
result = func(*args, **kwargs) # code 2, 4
print(f"result : {result}") # code 3
return result
return wrapper
@disp
def plus(a, b):
result = a + b # code 2
return result
@disp
def minus(a, b):
result = a - b # code 4
return result
plus(1,2)
<출력결과>
start
result : 3
minus(1,2)
<출력결과>
start
result : -1
728x90
반응형