Python 심화23 - 데코레이터

do yeon kim·2022년 6월 8일
0

Python(심화)_fastcampus

목록 보기
24/24

데코레이터

데코레이터란
함수의 앞,뒤로 부가적인 기능을 넣어 주고 싶을 경우 사용

클로저를 이용해서 생성
적용하고 싶은 함수앞에 @데코레이터

#데코레이터
#함수의 앞 뒤로 부가적인 기능을 넣어주고 싶을 때 사용
#로깅, 권한확인

#함수내부의 중복을 데코레이터가 제거해줄수 있다.

#데코레이터 생성하기
def logger(func):
    def inner_wrapper():
        print("함수시작")
        func() #함수실행
        print("함수끝")
    return inner_wrapper

#클로저를 이용해서 데코레이터 생성


@logger
def print_hello():
    print("hello ehdus")
  
@logger
def print_bye():
    print("bye ehdus")


print_hello()
print_bye()

#@logger라는 데코레이터가 지정되어있다.
#그러면 데코레이터를 먼저 찾는다.
#그리고 print_hello라는 함수를 logger(func) 매개변수자리로 올린다.



#매개변수를 받는 경우
def logger(func):
    def inner_wrapper(arg):
        print("함수시작")
        func(arg) #함수실행
        print("함수끝")
    return inner_wrapper


@logger
def print_hello(name):
    print("hello", name)
  
@logger
def print_bye(name):
    print("bye", name)


print_hello("도연")
print_bye("도연")

심화학습필요하다.


https://fastcampus.co.kr/dev_online_pyweb

0개의 댓글