데코레이터(decorator) 패턴

joy·2022년 8월 15일
0
post-thumbnail

데코레이터(decorator) 패턴

  • 테코레이터 패턴은 함수의 객체와 함수를 변경하는 다른 객체를 Wrapping 해줍니다.

  • 즉, 기존의 함수를 꾸며주는 역할!

예시

  • 모든 이모티콘에 저작권 표시를 해야한다고..?
    - 모든 이모티콘 함수에 print로 넣어주는 것 대신, @decorator 이용해보자!
def copyright(func):
    def new_func():
        print("@ copyrignt from joy")
        func()

    return new_func


def smile():
    print("😊")


def angry():
    print("🤯")


def love():
    print("😍")

| 아래처럼 일일이 새로운 함수로 재정의해서 사용하는 방법도 있지만...

smile = copyright(smile)
angry = copyright(angry)
love = copyright(love)

smile()
angry()
love()

| 대신 @decorator 사용해주는 방식 사용하면 깔끔 간편!

def copyright(func):
    def new_func():
        print("@ copyrignt from joy")
        func()

    return new_func
    
    
@copyright
def smile():
    print("😊")


@copyright
def angry():
    print("🤯")


@copyright
def love():
    print("😍")

smile()
angry()
love()
    

인프런의 타입 파이썬! 올바른 class 사용법과 객체지향 프로그래밍 강의 수강 후 정리한 내용입니다.

profile
세상의 긍정적 변화에 기여하기

0개의 댓글