-
python closure / decoratorpython 기초 2023. 1. 23. 14:02728x90
python에서는 함수도 하나의 객체가 된다.
이러한 특징을 이용하면, 함수를 만들어내는 함수 라던가, 함수를 조작하는 함수 같은 것들이 구현 가능하다.
함수를 만들어주는 함수 = closure
mul 함수를 f 에 생성해 둔 후, input에 variation을 주는 코드이다. 위와 같이 function_creator라는 함수로, mul이라는 함수를 만들어서 f에 return하였다.
이 f를 원하는 때에 불러와서, 맘껏 쓸 수 있다.
단순한 연산에서 굳이.... 싶지만여기서 특징적인 부분은, f를 만들때 넣어준 a가 계속 유지된다는 사실.
-> 매번 조건에 따라 함수를 호출할 때, 이를 단순화 할 수 있을듯 하다.
함수를 인자로 받아 새로운 함수로 꾸며주는 함수 = decorator
decorator와 이를 연결하는 sample 위의 time_check와 같은 decorator는 함수를 받아서 앞뒤 시간을 체크하는 새로운 함수를 만들어준다.
이를 다른 함수에서 @time_check와 같이 위에 연결해주면 해당 함수는 decorator의 형태로 동작하게 된다.
728x90'python 기초' 카테고리의 다른 글
python repr eval 사용 (0) 2023.01.24 type annotation (0) 2023.01.24 python generator (0) 2023.01.23 python iterator (0) 2023.01.23 data type encoding - decoding (0) 2023.01.22