-
Python Decorator 란?Software Development/Python 2020. 4. 10. 17:26
Decorator는 호출 가능한(callable) 함수, 메소드 또는 클래스 definition을 수정하는데 사용되는 파이썬 객체입니다. Decorator는 정의된 원래 객체를 받아 수정된 객체를 return하며, 정의된 이름에 바인딩 됩니다. Decorator는 Java annotations에서 영감을 받아 비슷한 syntax를 가지고 있습니다. @을 사용합니다.
아래의 코드는
@dec2 @dec1 def func(arg1, arg2, ...): pass
아래의 코드와 동일합니다.
def func(arg1, arg2, ...): pass func = dec2(dec1(func))
장식자는 메타 프로그래밍의 한 형태입니다. 예를 들어 아래 샘플에서 viking_chorus는 menu_item을 호출할 때마다 8번 실행할 수 있습니다.
def viking_chorus(myfunc): def inner_func(*args, **kwargs): for i in range(8): myfunc(*args, **kwargs) return inner_func
decorator 함수의 표준 사용은 class method, static methods, adding function attributes, tracing, setting pre- and post conditions 그리고 synchroniztion입니다.
'Software Development > Python' 카테고리의 다른 글
[Python] Pylint - 정의와 예제를 통해 Python 린트 툴 알아보기 (1) 2020.09.03 Python traceback -오류를 역추적 하기 (0) 2020.06.24 Python metaclasses, singleton pattern (0) 2020.04.10 NumPy 알아보기 (0) 2020.04.06 [Python] 순서를 유지하면서 리스트의 연속된 중복 제거하기 (0) 2020.02.11