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_decorator가 my_function이 호출되기 전과 후에 몇 가지 추가 코드를 더함으로써 그 동작을 수정할 수 있었음을 보여줍니다.
챌린지
쉬움함수 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 + bPython 데코레이터의 모든 레슨
직접 연습해 보세요: 온라인 Python 컴파일러