728x90
반응형
Decorator(데코레이터)
함수를 꾸며주는 함수. 기존에 정의된 함수에 기능을 손쉽게 추가해주는 함수
어떤 동작을 함수 전/후에 수행해야 하거나, 공통적으로 사용하는 코드를 쉽게 관리할 때 사용
파이썬 함수의 특징
-변수에 할당 가능
-다른 함수 내에 정의 가능
-함수의 인자로 전달 가능
-함수의 반환값이 될 수 있음
위와 같이 데코레이터를 만들게 되면 기존 함수의 속성들이 사라짐
(__name__,__doc__ 등이 원 함수가 아닌 데코레이터의 것으로 적용됨)
이를 보완하기 위해 functools 모듈의 wraps를 사용한다.
데코레이터 인자 넘기기
-데코레이터에 추가 인자를 넘길 수 있다.
(이 때 데코레이터를 만들어주는 함수를 정의한다고 보면 된다)
클래스로 데코레이터 만들기
-class의 __call__ 메소드로 구현 가능
(call 메소드는 클래스를 함수처럼 실행시 호출된다 ex- class Test()->a=Test()->a())
#출처:https://blog.jonnung.com/python/2015/08/17/python-decorator/
728x90
반응형
'파이썬' 카테고리의 다른 글
[django]"django_content_type" already exists 에러 발생시 (0) | 2019.04.17 |
---|---|
[time,datetime] 시간 타입 변경하기 (0) | 2019.02.28 |
[파이썬]컨테이너,이터러블,이터레이터 정리 (0) | 2019.01.27 |
프로퍼티(Property)란? (0) | 2019.01.15 |
[Python] Generator, Coroutine에 대해 (0) | 2018.11.22 |