Hike News
Hike News

python에서 데코레이터 사용법

Person:

  • 파이썬에서 데코레이터를 간략하게 설명하고 초간단 예제를 보여주세요

ChatGPT:

  • 데코레이터(Decorator)는 파이썬에서 함수나 클래스를 수정하거나 기능을 추가하기 위해 사용되는 기능입니다. 데코레이터는 기존의 코드를 변경하지 않고도 기능을 추가하거나 수정할 수 있어 코드의 재사용성과 가독성을 높일 수 있습니다. 데코레이터는 함수나 클래스 위에 @데코레이터_함수와 같은 형태로 사용되며, 해당 함수는 데코레이팅된 함수나 클래스를 인자로 받아 기능을 추가하거나 수정한 뒤 반환합니다.

다음은 더 간단한 예제로 @uppercase라는 데코레이터를 사용하여 함수의 반환값을 대문자로 변환하는 예제입니다:

1
2
3
4
5
6
7
8
9
10
11
12

def uppercase(func):
def wrapper():
result = func() # 원래 함수 호출
return result.upper() # 반환값 대문자로 변환
return wrapper

@uppercase
def greet():
return "hello, world!"

print(greet())

위 예제에서 uppercase 데코레이터는 wrapper라는 내부 함수를 정의하고, 이 함수에서 원래 함수인 greet를 호출하고 반환값을 대문자로 변환하여 반환합니다. @uppercase 데코레이터를 사용하여 greet 함수를 장식하면, greet 함수의 반환값이 대문자로 변환된 상태로 출력됩니다.

출력 결과:

1
2

HELLO, WORLD!

이처럼 데코레이터를 사용하면 함수나 클래스의 동작을 수정하거나 기능을 추가할 수 있습니다.