[TIL. 26] Python- Neseted Function (Closure, Decorator)


nested function


関数は、条件文や重複文など、重ねて使用することもできます.
def parent_function():
    def child_function():
        print("this is a child function")

    child_function()

parent_function()
> "this is a child function"
このように...
💡 ネスト関数を使用する理由
1.可読性
2. Closure

Closure


1)オーバーラップ関数親関数の変数または情報をオーバーラップ関数で使用します.
2)親関数はネストされた関数を返します.
3)親関数から返されるため、親関数の変数は直接アクセスできませんが、親関数から返されるオーバーラップ関数で使用できます.

💡 親関数は子関数を返し、子関数でも親関数のパラメータを使用できるようにします.

Decorator


関数の追加コマンドを受け入れ、関数として返されます.関数の内部を変更せずに関数を変更する場合に使用できます.主に関数の前または後に処理したい内容がある場合に使用します.
レコーダの基本構造
def out_func(func):  # 기능을 추가할 함수를 인자로   
    def inner_func(*args, **kwargs):
        return func(*args, **kwargs)
    return inner_func
    
@ out_func
def example_func():
	return "ㅇㅇ"
デコーダは基本的にこのような構造から構成されている.
@をdecoratorとして使用できます.
Pythonでは、関数を他の関数のパラメータとして使用できます.
def welcome_decorator(func):
    def welcome():
        a = func()
        a += "welcome to WECODE!"
        return a

    return welcome


@welcome_decorator
def greeting():
    return "Hello, "


greeting()  # "Hello, Welcome to WECODE"
"welcome to WECODE!"greeting()関数のreturn値の前に常に配置し、greeting()関数のreturn値のみを随時変更して構文を変更できます.