Decorators Usage
Coddy의 Python 데코레이터 코스 레슨. 12개 중 5번째.
Python에서 데코레이터(decorator)는 다른 함수를 입력으로 받아 해당 함수의 코드를 명시적으로 수정하지 않고도 그 동작을 확장하는 함수입니다. 데코레이터는 유연하고 재사용 가능한 방식으로 함수의 동작을 수정하거나 향상시킬 수 있는 강력한 방법입니다.
다음은 간단한 데코레이터 함수의 예시입니다:
def my_decorator(func):
def wrapper():
print("Before the function is called.")
func()
print("After the function is called.")
return wrapper이 예제에서 my_decorator 함수는 다른 함수인 func를 입력으로 받아 wrapper라는 새로운 함수를 반환합니다.
wrapper 함수는 func 함수가 호출되기 전과 후에 몇 가지 동작을 추가합니다.
챌린지
쉬움함수 func를 입력으로 받아, func가 호출될 때마다 func의 이름과 func의 반환 값을 출력하는 새로운 함수를 반환하는 debug라는 데코레이터 함수를 작성하세요.
func의 이름을 가져오려면func.__name__을 사용하세요.
다음은 debug 데코레이터를 사용하는 예시입니다:
def hello():
return "Hello"
debug_hello = debug(hello)
debug_hello()이 예시에서, 우리는 debug 데코레이터를 사용하여 hello 함수를 감싸고 debug_hello라는 새로운 함수를 생성합니다. debug_hello()를 호출하면, 데코레이터는 다음과 같이 출력합니다:
Calling hello
hello returned: Hello
debug에 전달되는 모든 함수는 인수가 없는 함수(no-arguments functions)라고 가정할 수 있습니다.
직접 해보기
Python 데코레이터의 모든 레슨
직접 연습해 보세요: 온라인 Python 컴파일러