내가 보려고 만든 블로그
<파이썬> Decorator 란? 본문
Decorator 는 이름 그대로 함수를 장식하는 역할을 한다. 다음과 같이 "Hello World"를 출력하는 간단한 함수, HelloWorld를 만들었다.
추가로 func라는 인자를 받는 Decorator라는 함수를 만들어주었다. 파이썬에서는 func 라는 이름으로 함수를 인자로 받을수 있다.
이 Decorator라는 함수에 Wrapper라는 이름으로 인자로 받아 실행하게 되는 func 함수의 앞 , 뒤에 print를 넣어 데코레이터의 동작여부를 체크하고 최종적으로 Wrapper를 return 할 수 있도록 하였다.
이제 이 Decorator에 수식할 함수 HelloWorld를 넣어주고 호출해보면 다음과 같이 "Hello World"의 앞, 뒤에 데코레이터가 동작하는 것을 볼 수있다.
히지만 이 방법보다 가장 많이 볼 수있으며 쉬운 방법이 바로 "@"를 이용하는 것이다.
다음과 같이 수식할 함수의 위에 @Decorator 형태로 데코레이터를 넣어주면 똑같이 동작하는 것을 확인할 수 있다.
또한 데코레이터는 한개뿐만이 아니라 여러개의 함수를 수식해 줄 수 있으며 다음과 같이 사용하면 된다.
@decorator_example1
@decorator_example2
def function_example():
마지막으로 데코레이터는 함수뿐만 아니라 클래스 형태로 사용할 수 있으며 대신 __call__ 매소드를 넣어 callable하게 만들어주기만 하면된다.
'Python | Web > Python' 카테고리의 다른 글
<Python> Framework 안쓰고 Api 서버 만들기 (0) | 2022.08.20 |
---|---|
<Python> Socket 통신으로 간단한 채팅 프로그램 만들기 (0) | 2022.07.13 |
<파이썬> Descriptor (0) | 2021.08.08 |
<파이썬> Property (0) | 2021.08.08 |
< 파이썬 > Generator 란 (0) | 2021.08.01 |