00 개요
- FastAPI를 사용하는 프로그램를 코드분석하고 있는데 데코레이터 (@어떠한이름)가 나오길래 무엇인지 정리하고자 함
01 Decorator 데코레이터란?
1. 정의
- '꾸며주는 어떤 것'
- 함수/메서드에 적용되어 해당 함수/메서드의 기능을 확장/변경하는 역할
- @기호와 함께 사용되며 함수/메서드 위에 위치
- 기본적으로 함수를 인자로 받고 또 다른 함수를 반환하는 고차 함수(high-order function)
2. 작동원리
- 앞으로 생성할 my_decorator(func) 함수는 데코레이터 함수로서 hello() 함수를 인자로 받아 wrapper() 함수를 반환할 것
- my_decorator(hello) 함수가 담겨진 decorated_hello()를 호출하면 데코레이터가 추가한 내용과 함게 hello 함수의 내용이 출력됨
def my_decorator(func):
def wrapper():
print("데코레이터가 추가한 내용")
func()
print("데코레이터가 추가한 내용")
return wrapper
def hello():
print("안녕하세요")
decorated_hello = my_decorator(hello)
decorated_hello()
- @기호를 사용하면 동일한 기능을 더 간단/직관적으로 코드 작성 가능
def my_decorator(func):
def wrapper():
print("데코레이터가 추가한 내용")
func()
print("데코레이터가 추가한 내용")
return wrapper
@my_decorator
def hello():
print("안녕하세요")
hello()
참조
'Python > 기본문법' 카테고리의 다른 글
namedtuple (파이썬 자료형) (0) | 2024.07.31 |
---|---|
dictionary란 (파이썬 자료구조) (0) | 2024.07.25 |
_ underscore (파이썬) (0) | 2024.06.28 |
os (운영체제 작업 모듈) (1) | 2024.06.18 |
sys (인터프리터 제어 모듈) (0) | 2024.06.13 |