Menu
Coddy logo textTech

Python Syntax

Coddy의 Python 데코레이터 코스 레슨. 12개 중 6번째.

이전 레슨에서 우리는 함수 데코레이터를 만드는 방법을 살펴보았습니다. 하지만 파이썬은 @ 기호를 사용하여 이 기능을 구현하는 훨씬 더 우아한 방법을 제공합니다.

예를 들어,

def my_decorator(func):
    def wrapper():
        print("Before function is called.")
        func()
        print("After function is called.")
    return wrapper

@my_decorator
def my_function():
	print("Inside my_function.")

my_function()을 실행하면 다음과 같은 출력을 볼 수 있습니다:

Before function is called.
Inside my_function.
After function is called.

이것은 데코레이터 함수인 my_decoratormy_function이 호출되기 전과 후에 몇 가지 추가 코드를 더함으로써 그 동작을 수정할 수 있었음을 보여줍니다.

challenge icon

챌린지

쉬움

함수 add를 위한 코드가 주어집니다.

여러분의 작업은 지난 레슨에서와 같이 debug라는 이름의 함수 데코레이터를 작성하는 것이지만, 몇 가지 추가 사항이 있습니다:

  • @ 기호를 사용하여 add에 함수 데코레이터 debug를 추가합니다.
  • debug 함수는 함수 인수를 지원해야 합니다.

데코레이터에서 인수가 있는 함수를 지원하려면 다음과 같이 합니다.

def my_decorator(func):
    def wrapper(a, b):
        print("Before function is called.")
        func(a, b)
        print("After function is called.")
    return wrapper

예시:

함수 호출 add(2, 3)에 대해 다음과 같이 출력되어야 합니다.

Calling add with arguments (2, 3)
add returned: 5

직접 해보기

# 여기에 코드를 작성하세요


def add(a, b):
    return a + b

Python 데코레이터의 모든 레슨

직접 연습해 보세요: 온라인 Python 컴파일러