Python Decorator(3)


レコーダの閉じた機能を理解するために使用
既存の叙述内容と重複可能
いわゆる「コピー機能」
  • で使用される関数を閉じた関数と呼びます
  • 関数およびその関数が所有するローカルデータを複製および格納し、単独で使用する方法(第1のクラスの関数と同じ)
  • .
  • テクニック
  • 親関数のローカル変数値とネスト関数を使用できます.親関数が消えても
    def outer_func(num):
        # 중첩 함수에서 외부 함수의 변수에 접근 가능
        def inner_func():
            print(num)
            return '안녕'
        
        return inner_func # 중첩 함수 이름을 리턴
    
    closure_func = outer_func(10)    # <--- First-class function
    closure_func()                   # <--- Closure 호출
    いつClosureを使いますか?
  • Closureオブジェクト
  • と同様
  • 通常必要な機能(メソッド)が少ない場合は、クラスではなく「クローズド」も使用されます.
    def calc_square(digit):
        return digit * digit
    
    def calc_power_3(digit):
        return digit * digit * digit
    
    def calc_quad(digit):
        return digit * digit * digit * digit
    
    """ 위의 3가지 함수를 클로저로 구현하면 아래와 같이 구현할 수 있다. """
    
    def calc_power(n):
        def power(digit):
            return digit ** n
        return power
    
    power2 = calc_power(2)
    power3 = calc_power(3)
    power4 = calc_power(4)
    
    power2(2)
    power3(2)
    power4(2)