Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- EC2
- 백엔드 인턴십
- spring boot
- 조건연산
- 프리온보딩
- 코딩테스트
- 프로그래머스
- yaml
- Postman
- numpy
- 람다함수
- 행렬곱
- mock server
- RDS
- 컴프리헨션
- 집계함수
- API
- 파이써닉코드
- PYTHON
- todo project
- 함수
- cerbot
- sqlalchemy
- 클래스
- Jar배포
- 토이프로젝트
- Django
- 파이썬
- Comprehension
- self
Archives
- Today
- Total
build my life
[Python] 데코레이터(Decorator) 본문
728x90
데코레이터(Decorator)
- 장식하다, 꾸미다의 의미에 맞게 함수를 장식하고 꾸미는 함수
- 코드를 변경하지 않고 기능을 추가하거나 수정하고 싶을 때 정의하여 사용
- 내부함수 주소를 반환하는 클로져와 비슷하고 함수가 인자로 전달됨
def decorator_func(org_func):
def wrapper_func():
print("org_func 실행 전")
org_func()
return wrapper_func
def do_func():
print("org_func 실행")
result = decorator_func(do_func) #result에 wrapper_func의 주소값이 전달된다.
result() #wrapper_func 실행
# output
org_func 실행 전
org_func 실행
- 데코레이터의 파라미터는 몇개의 어떤 자료가 들어올 지 모르기 때문에 가변 파라미터로 정의한다.
- 위와 같이 데코레이터로 함수를 꾸며주는 방법이 있지만 더 간단하게 꾸며주고 싶은 함수 위에 다가 @데코레이터명을 적어줌으로써 꾸며줄 수 있다.
def decorator_func(org_func):
def wrapper_func(*args, **kwargs):
print("콜백함수가 실행되기 전입니다.")
result = org_func(*args, **kwargs)
print("콜백함수가 실행완료 되었습니다.")
return result
return wrapper_func
@decorator_func
def do_func(a, b):
return a + b
do_func(3,5)
#output
콜백함수가 실행되기 전입니다.
콜백함수가 실행완료 되었습니다.
8
어렵다 어렵다 어렵다.....ㅠㅠㅜ
728x90
'Python' 카테고리의 다른 글
[Python] 상속 (0) | 2022.08.09 |
---|---|
[Python] 클래스 (0) | 2022.08.09 |
[Python] 클로저(Closure)와 콜백함수(Callback) (0) | 2022.08.08 |
[Python] 람다 함수(lambda) (0) | 2022.08.08 |
[Python] 함수 (0) | 2022.08.08 |