TIL48. ネスト機能とDecorator
Nested Function
スタイル
def parent_function(): # 1
def child_function(): # 3
print("this is a child function") # 4
child_function() # 2
print(parent_function()) # 5
出力値:「this a child function」ネスト関数(nested function)または内部関数は、親親関数でのみ呼び出されます.
親関数を呼び出すことができません.
ネスト関数の使用方法
1.可読性
親関数のコードを効率的に管理し、可読性を向上させる
2. Closure
Pythonで使われているclosureは、外部から隔離して使われているようです.
ネスト関数は、ネスト関数で親関数の変数または情報を使用します.
親関数は、戻り値でネストされた関数を返します.
親関数から返されるため、親関数の変数に直接アクセスできません.
親関数は、返されるオーバーラップ関数で使用できます.
def generate_power(base_number):
def nth_power(power):
return base_number ** power
return nth_power
a = generate_power(2) # a가 먼저 부모 def에 접근하고 2를 입력시킨다.
a(7) # 자식 def에 들어가 2**7을 성립시킨다.
> 128
a(10)
> 1024
b = generate_power(7)
b(3)
> 343
b(5)
> 16907
Decorator
Decoratorって何?
Pythonは、関数を飾るためのツールとして記述することができます.
Decoratorはどのように使いますか?
Decoratorの例
def welcome_decorator(func): # 4 def greeting()을 통째로 func에 대입
def wrapper(): # 6 래퍼 정의
return func() + "welcome to WECODE!" # 7 func()와 문자열 합체
return wrapper # 5 래퍼를 반환시켜라
@welcome_decorator # 1
def greeting(): # 2
return "Hello, " # 3
print(greeting()) # 8
結果の値は次のとおりです.Hello, welcome to WECODE! しゅつりょく
Reference
この問題について(TIL48. ネスト機能とDecorator), 我々は、より多くの情報をここで見つけました https://velog.io/@dnjs0718/TIL48.-Nested-Function-중첩-함수テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol