중첩함수의 사용

1735 단어 pythonpython

1. 중첩함수?

  • 함수 안에 함수를 중첩하여 선언
  • 중첩함수(nested function) 혹은 내부함수는 상위 부모 함수 내에서만 호출 가능
def parent_function():
    def child_function():
        print("this is a child function")

    child_function()

parent_function()
> "this is a child function"

-> 위의 코드에서 child_function 함수는 parent_function 안에서만 호출이 가능

2. 왜 사용하는가?

1) for 가독성

  • 함수 안의 코드 중 반복되는 코드가 있다면 중첩함수로 선언하면 부모함수의 코드를 효과적으로 관리하고 가독성을 높일 수 있다.
  • 애초에 함수를 사용하는 목적 또한 반복되는 코드를 함수로 설정해서 가독성을 높이기 위함

2) for closure

  • 중첩 함수가 부모 함수의 변수나 정보를 가두어 사용하는 것을 closure
    • 중첩 함수가 부모 함수의 변수나 정보를 중첩 함수 내에서 사용한다.
    • 부모 함수는 리턴값으로 중첩 함수를 리턴한다.
    • 부모 함수에서 리턴 했으므로 부모 함수의 변수는 직접적인 접근이 불가능 하지만 부모 함수가 리턴한 중첩 함수를 통해서 사용될 수 있다.
  • 그렇다면 언제 closure?
    -> 어떠한 정보를 기반으로 연산을 실행하고 싶지만 기반이 되는 정보는 접근을 제한하여 노출이 되거나 수정이 되지 못하게 하고 싶을때 사용

좋은 웹페이지 즐겨찾기