프로그래밍 언어/Python
[@ 데코레이터] 원래 함수를 수정하지 않고 추가적인 기능을 구현하는 방법
버터젤리
2025. 4. 20. 21:48
🎀 데코레이터란?
데코레이터(Decorator) = 다른 함수에 기능을 추가하는 함수
- 원래 함수를 바꾸지 않고
- 실행 전후에 기능을 덧붙이기 위해 씀!
바로 예시로 알아보자
def decorator_function(original_function):
def wrapper_function():
print("함수 실행 전 🎬")
original_function()
print("함수 실행 후 🎉")
return wrapper_function
@decorator_function
def say_hello():
print("안녕~ 👋")
say_hello()
함수 실행 전 🎬
안녕~ 👋
함수 실행 후 🎉
Sum.
@decorator_function | 데코레이터 함수 붙이는 문법 |
wrapper_function | 기존 함수 감싸는 함수 |
original_function() | 원래 우리가 부르고 싶은 함수 |
- 기존 함수의 내용에 앞,뒤로 기능을 덧붙일수 있음
🌟 데코레이터 언제 쓰냐?
- ✅ 공통기능 추가 (ex. 로깅, 인증 체크, 타이머 등)
- ✅ 코드 재사용성 ↑
- ✅ 함수 수정 없이 기능 덧붙이기 가능!
가장 적합한 예시
🧪 예시: 실행 시간 측정 데코레이터
import time
def timer_decorator(func):
def wrapper():
start = time.time()
func()
end = time.time()
print(f"⏱ 걸린 시간: {end - start:.2f}초")
return wrapper
@timer_decorator
def slow_function():
time.sleep(2)
print("느린 함수 끝~ 🐢")
slow_function()