본문 바로가기
목차
Python

[Python] Nested Function (or Inner Function)

by ds31x 2023. 7. 15.
728x90
반응형

https://www.trytoprogram.com/python-programming/python-closures/

 

nested중첩이라고 불리며 일반적으로 2중 loop등을 지칭할 때 사용되는 용어임.

 

Nested Function

nested function이란,

  • for문 안에 for문이 중첩되어 2중 loop를 구성하는 것처럼,
  • function 내부에서 function을 정의(선언)하는 것을 가르킴.
  • 때문에 inner function이라고도 불림.

다음 예를 보면 쉽게 알 수 있음.

def ex_func(j):

    def nested_func(i):
        return i ** 2
        
    for c in range(j):
        print(nested_func(c))


lambda function (=lambda expression)과 비슷한데,

  • 보다 복잡한 구현이 필요할 때 nested function 이 사용되고,
  • 1줄 수준의 간단한 구현인 경우 lambda expression이 사용된다.

2023.07.07 - [Python] - [Python] lambda expression and map, filter, reduce.

 

[Python] lambda expression and map, filter, reduce.

Lambda expression (or Lambda Function, Anonymous Function)Python 에서 lambda function (or lambda expression)은 anonymous function(익명함수)를 만드는데 사용됨.function 형태로 code구현의 재사용을 해야하긴 하지만, def문을 이

ds31x.tistory.com


사용처

주로 단순한 코드가 반복되는 경우에 사용되어 가독성을 높이는데 사용되며, 

first-class object 개념과 함께, clousre와 같은 디자인패턴을 구현하는데 사용됨.

 

C언어에 익숙한 개발자의 경우, Python등에서 nested function을 보면 상당히 어색하다.
개인적으로 tuple을 이용한 a,b = b,a 로 두 변수의 값을 swap하는 것과 함께
가장 어색했던 게 nested function이었음.

2023.07.15 - [Python] - [Python] first-class object (일급객체)

 

[Python] first-class object (일급객체)

함수형 프로그래밍 언어에서 중요한 개념이며,JavaScript와 Python등에서 Closure와 같은 다양한 디자인패턴을 응용 및 구현하는데 중요한 역할을 한다. 함수형 언어 관련 참고 자료 :http://ds31x.blogspot.c

ds31x.tistory.com

 

2023.07.15 - [Python] - [Python] Closure

 

[Python] Closure

Closure의 정의는 다음과 같음. Nested function 으로, 자신의 enclosing scope (= Python에서 non-local scope)의 상태값(lexcical environment의 variable 값)을기억하고 유지, 변경, 사용할 수 있는 high-order function를 가르

ds31x.tistory.com

 

728x90

'Python' 카테고리의 다른 글

[Python] Closure  (0) 2023.07.15
[Python] scope와 키워드 global, nonlocal  (0) 2023.07.15
[Python] first-class object (일급객체)  (0) 2023.07.15
[Python] Callback function  (0) 2023.07.13
[Python] overloading, overriding, and special methods  (0) 2023.07.13