ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • python closure / decorator
    python 기초 2023. 1. 23. 14:02
    728x90

    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
Designed by Tistory.