본문 바로가기

반응형

데코레이터

(4)
[Python] 클래스(class) #7 클래스 데코레이터 이번 포스트에서는 이전에 배운 callable object를 이용하여 클래스 형태의 데코레이터(decorator)를 만들어 보도록 하겠다. 목차 파이썬 클래스 소개 instance vs static dict vs slots property의 활용 special method callable object >> 클래스 데코레이터(class decorator) 상속 추상 클래스와 추상 메소드 Callable Object 와 Decorator 본격적인 설명에 앞서 이전 강좌를 못 본 분들도 있을 것이므로 callable object와 decorator에 대해 간단한 한줄 요약을 정리하고 넘어 가도록 하겠다. 자세한 사항은 각 링크된 포스트들을 살펴 보도록 한다(아무리 요약이 있더라도 꼭 살펴 보도록 하자). ca..
[Python] 데코레이터(Decorator) #3 인자를 가지는 데코레이터 이전 강좌에서 functools 모듈의 wraps 데코레이터를 사용하면서 지금까지 우리가 배웠던 데코레이터와는 다르게 인자를 사용하고 있는 것을 보았다. 이번 강좌에서는 이와 같이 인자를 받을 수 있는 데코레이터에 대해 알아 보도록 하겠다. 목차 파이썬 데코레이터 소개 함수의 인자와 리턴값 처리하기 >> 인자를 가지는 데코레이터 데코레이터 활용 인자를 가지는 데코레이터 지금까지 우리가 만든 add_emoticon 예제는 한가지 이모티콘 밖에 출력 할 수 없었다. 이제 아래 예제 처럼 add_emoticon 함수가 인자를 가질 수 있도록 개선하여 고정된 이모티콘이 아닌 인자로 넘겨 받은 문자열을 출력 할 수 있도록 해보자. # @add_emoticon # say_hello = add_emoticon(say..
[Python] 데코레이터(Decorator) #2 함수의 인자와 리턴값 처리 이번 포스트는 인자와 리턴 값을 갖는 함수에 데코레이터를 적용하는 방법에 대해 알아 본다. 또한 함수를 데코레이팅함으로써 발생하는 함수의 메타 정보에 대한 문제들과 그 해결 방법에 대해 집중적으로 다루도록 하겠다. 목차 파이썬 데코레이터 소개 >> 함수의 인자와 리턴값 처리하기 인자를 가지는 데코레이터 데코레이터 활용 함수 인자와 리턴값 처리하기 [이전 강의]의 예제에서는 인자와 리턴 값이 없는 함수를 대상으로한 데코레이터 예제를 살펴 보았다. 그렇다면 아래와 같이 say_hello 함수에 인자가 추가 되면 어떻게 될까? def add_emoticon(func) : def inner() : print('= ̄ω ̄= ', end='') func() return inner @add_emoticon def sa..
[Python] 데코레이터(Decorator) #1 소개 이번 포스트 부터 파이썬의 핵심 기능 중 하나인 데코레이터(Decorator)에 대해 살펴 볼 예정이다. 데코레이터는 앞으로 나올 강좌에서도 종종 등장할 예정이므로 집중해서 읽도록 하자. 목차 >> 파이썬 데코레이터 소개 함수의 인자와 리턴값 처리하기 인자를 가지는 데코레이터 데코레이터 활용 데코레이터란? 데코레이터(Decorator)는 '장식하다', '꾸미다'라는 뜻으로 함수(또는 클래스 메소드)를 꾸며준다고 해서 이런 이름이 붙었다. 파이썬의 데코레이터는 기존 함수의 이름과 사용성을 변경하지 않는 상태에서, 함수에 추가 기능을 구현할 때 사용 되는 파이썬의 주요 특징 중에 하나다. 데코레이터는 기존 함수를 변경하지 않으면서 함수에 기능을 추가 할 때 사용된다. 예를 들어 아래와 같은 say_hello..

반응형