함수 데코레이터
“@”로 시작하는 구문을 ‘데코레이터’라고 부름
데코레이터는 만드는 방법에 따라 ‘함수 데코레이터’와 ‘클래스 데코레이터’가 있음
함수 데코레이터의 기본
대상 함수의 앞 뒤에 꾸밀 부가적인 내용, 혹은 반복할 내용을 데코레이터로 정의해 손쉽게 사용할 수 있게 한 것
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 동작 알고리즘이 이해가 어렵다면 이 페이지를 읽는 걸 추천한다
'[파이썬]' 카테고리의 다른 글
[파이썬] 인스턴스(객체)와 클래스, 그리고 상속 (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 |