파이썬 데코레이터

정은경·2020년 3월 10일
0

파이썬 데코레이터 (decorator)

  • '@'로 시작
  • 함수(메서드)를 장식한다고 해서 이런 이름이 붙었음 (=장식자)
  • 어떤 함수/메서드를 실행하기 전에 먼저 처리되는 함수
  • 하나의 함수를 취해서 또 다른 함수를 반환 하는 함수

데코레이터를 이해하기 위한 3가지 개념:

(1) 일급객체:
함수 내에 함수를 정의할 수 있다
함수를 인자로 전달할 수 있다
(2) 클로저
내부 함수가 외부함수의 인자를 기억하고 있는 것
(3) 위치인자(
args), 키워드 인자(* * kwargs)

데코레이터를 사용하는 경우

  • 로그 남길 때
  • 유저의 로그인 상태를 확인하여 로그인 페이지로 리다이렉트
  • 프로그램 성능 테스트

Q1. Decorator 사용 시 주의해야 할 점은?


Q2. JavaScript 콜백과 Python Decorator를 비교해 주세요


JavaScript Callback과 Python Decorator 를 비교해주세요.

두가지 모두 형태(chainning)가 비슷하고, 매개변수로 함수를 받는 것은 동일하지만 두가지의 목적성이 다르다.
콜백함수의 목적 : 특정 함수의 동작이 끝남과 동시에 다른 여러 가지 함수를 호출해야할 경우에 사용된다
데코레이터의 목적 : 한 기능을 여러 번 사용하기 위해 데코레이터 기능을 이용하여 강제성을 부여한다.

Reference

profile
#의식의흐름 #순간순간 #생각의스냅샷

0개의 댓글