@로 시작하는 것들이 데코레이터
@데코레이터
def 함수이름():
코드
여러개 가능, 위에서 아래로 실행
데코레이터는 기존 함수를 수정하지 않은 상태에서 추가 기능을 구현할 때 사용
그리고 반복적인 작업을 데코레이터로 선언해서 사용가능
->가독성, 직관성이 좋아짐!
def decorator(func):
def wrapper(*args, **kwargs):
print('Hello~') [1]
print(func(*args, **kwargs))
print('GoodBye~') [2]
return wrapper
@decorator
def myFunc():
return 'What is your name? [3]
[1]->[3]->[2]
Hello~ #출력
What is your name? #출력
GoodBye~ #출력