[Python]Nested Function
📌 ネスト機能
# child_function은 parent_function 안에서만 호출이 가능함.
def parents_function():
def child_function():
print("child function 이라고,,")
child_function()
parents_function()
-ネスト関数を使用する理由
どくせい
同様に、ネスト関数を使用する理由も同様であり、関数内のコードの重複するコードをネスト関数として宣言すると、親関数のコードを効率的に管理し、可読性を向上させることができる.
def print_all_elements(list_of_things): # 부모 함수
def print_each_element(things): # 중첩 함수
for thing in things:
print(thing)
if len(list_of_things) > 0:
print_each_element(list_of_things)
else:
print("없어요")
print_all_elements([1,2,3,4,4])
Closure
closure
と呼ぶ.また、親関数はオーバーラップ関数を書き換えます.つまり、親関数から返されるため、親関数の変数は直接アクセスできませんが、親関数から返されるオーバーラップ関数で使用できます.factory 패턴
が実施する場合に用いる(あるパターンを生成する)たとえば、
# 특정 숫자의 승을 구하는 함수를 구현한다면?
def calculate_poser_of_two(power):
return 2 ** power
print(calculate_poser_of_two(7))
print(calculate_poser_of_two(5))
しかし、上の関数は2乗しか求められません.特定の数字の乗算を求める関数が必要な場合、2ではなく任意の数の乗算を求める関数をどのように実現しますか?この場合、closure
関数を使用できます.# 특정 숫자의 승을 구하는 함수를 구현한다면?
def generate_power(base_number):
def nth_power(power):
return base_number ** power
return nth_power
num = generate_power(5)
print(num(2))
#25
勘定科目の親勘定科目の変数2479142は、オーバーレイ関数では独立して使用されます(=closure).次に、オーバーラップ関数が親関数の戻り値を返すことを確認します.Reference
この問題について([Python]Nested Function), 我々は、より多くの情報をここで見つけました https://velog.io/@byhazy/Nested-Functionテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol