[파이썬] 함수 데코레이터

2025. 2. 12. 14:09·[파이썬]
728x90

함수 데코레이터

“@”로 시작하는 구문을 ‘데코레이터’라고 부름

데코레이터는 만드는 방법에 따라 ‘함수 데코레이터’와 ‘클래스 데코레이터’가 있음

함수 데코레이터의 기본

대상 함수의 앞 뒤에 꾸밀 부가적인 내용, 혹은 반복할 내용을 데코레이터로 정의해 손쉽게 사용할 수 있게 한 것

def test(function):
    def warpper():
        print("실행")
        function()
        print("종료")
    return warpper

@test
def hello():
    print("hello")

hello()

#result
실행
hello
종료

코드를 살펴보면 helloI() 함수가 호출되어 작동 시 이는 @test 라는 데코레이터가 달려있기 때문에 test() 함수의 인자로 hello() 함수가 들어간다

test() 안에서 선언된 warpper()는 test가 return warpper로 반환하며 warpper가 실행되며 이때 warpper 안 function()은 test에서 인자로 전달된 hello가 들어가 실행된다

결과적으로 hello 함수 앞 뒤로 “실행” “종료”라는 문장이 출력되게 된다

함수 내에서 반환되는 함수

Returning a function from a function - Python - GeeksforGeeks

 

Returning a function from a function - Python - GeeksforGeeks

A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.

www.geeksforgeeks.org

warpper 동작 알고리즘이 이해가 어렵다면 이 페이지를 읽는 걸 추천한다

728x90

'[파이썬]' 카테고리의 다른 글

[파이썬] 인스턴스(객체)와 클래스, 그리고 상속  (0) 2025.02.17
[파이썬] 모듈과 패키지  (0) 2025.02.12
[파이썬] 라이브러리와 프레임워크  (1) 2025.02.12
[파이썬] 외장 모듈 소개와 설치 및 사용법 (Beautifulsoap, Flask)  (0) 2025.02.12
[파이썬] 모듈의 기초 사용법과 내장 모듈들(sys, math, datetime, time, urllib) 살펴보기  (0) 2025.02.12
'[파이썬]' 카테고리의 다른 글
  • [파이썬] 인스턴스(객체)와 클래스, 그리고 상속
  • [파이썬] 모듈과 패키지
  • [파이썬] 라이브러리와 프레임워크
  • [파이썬] 외장 모듈 소개와 설치 및 사용법 (Beautifulsoap, Flask)
뽕규의 스케치북
뽕규의 스케치북
공부 열심히 해볼게요
  • 뽕규의 스케치북
    뽕규의 스케치북
    뽕규의 스케치북
  • 전체
    오늘
    어제
  • 링크

    • 파이썬 공식 문서
    • GitHub
    • 분류 전체보기 (37)
      • [파이썬] (17)
      • [데이터 분석] (3)
      • [Git&GitHub] (5)
      • [자료구조 & 알고리즘] (3)
      • [안드로이드 앱] (0)
      • [네트워크] (0)
      • [머신러닝 & 딥러닝] (0)
      • [SQL] (1)
      • [컴퓨터 구조 & 운영체제] (0)
      • [개발자 수학] (0)
      • [노션] (6)
      • [기타] (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 공지사항

  • 인기 글

  • 태그

    발전
    pull
    파이썬
    DB
    소스트리
    깃
    공부
    github
    GIT
    함수
    노션
    기초
    *
    TODO
    개념
    sourcetree
    python
    수식
    push
    깃허브
  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.3
뽕규의 스케치북
[파이썬] 함수 데코레이터
상단으로

티스토리툴바