본문 바로가기
카테고리 없음

파이썬 데코레이터: 코드 재사용을 위한 강력한 도구

by 뷰티풀스택 2023. 7. 8.
반응형

파이썬 데코레이터(Decorators)는 함수나 클래스의 기능을 확장하거나 수정할 수 있는 강력한 기능입니다. 데코레이터는 함수나 클래스를 매개변수로 받고, 그것을 감싸는(Wrap) 기능을 수행하는 함수입니다. 데코레이터는 기존 코드를 수정하지 않고도 새로운 기능을 추가하거나 조작할 수 있게 해줍니다.

 

데코레이터는 주로 함수를 감싸는 용도로 사용됩니다. 데코레이터 함수는 주로 "@데코레이터_함수"와 같은 문법으로 함수 위에 표기됩니다. 데코레이터 함수로 감싸는 것만으로도 해당 함수가 추가적인 작업을 수행하게 됩니다.

 

아래는 간단한 파이썬 데코레이터 코드 예제입니다.

 

```python

def logger(func):

    def wrapper(*args, **kwargs):

        print("함수가 호출되었습니다: {}".format(func.__name__))

        return func(*args, **kwargs)

    

    return wrapper

 

@logger

def add(a, b):

    return a + b

 

result = add(3, 5)

print(result)

```

 

이 예제에서 `logger` 함수는 데코레이터 함수로 정의되었습니다. `wrapper` 함수는 감싸지는 함수의 앞뒤에 print문을 추가하는 역할을 합니다. `add` 함수 위에 `@logger` 문법을 사용하여 `add` 함수가 `logger` 함수로 데코레이션되었습니다. 그리고 `add` 함수를 호출하면, 데코레이터 함수 내부에서 추가적인 작업이 수행됩니다.

 

실행 결과:

```

함수가 호출되었습니다: add

8

```

 

위 예제에서 `add` 함수가 호출되면, 먼저 `logger` 함수 내에서 "함수가 호출되었습니다: add"라는 출력문이 나타납니다. 그리고 `add` 함수는 정상적으로 결과를 반환합니다.

 

이러한 방식으로 데코레이터를 사용하면, 기존 함수의 기능을 수정하지 않고도 새로운 기능을 간편하게 추가하거나 조작할 수 있습니다. 데코레이터는 코드 재사용성과 가독성을 높일 수 있는 강력한 도구입니다.

 

더 자세한 내용은 파이썬 공식 문서의 데코레이터에 대한 설명을 참고하시기 바랍니다.

 

링크: https://docs.python.org/ko/3/glossary.html#term-decorator

반응형

댓글