nested는 중첩이라고 불리며 일반적으로 2중 loop등을 지칭할 때 사용되는 용어임.
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과 비슷한데,
- 보다 복잡한 구현이 필요할 때 nested function 이 사용되고,
- 1줄 수준의 간단한 구현인 경우 lambda expression이 사용된다.
2023.07.07 - [Python] - [Python] lambda expression and map, filter, reduce.
주로 단순한 코드가 반복되는 경우에 사용되어 가독성을 높이는데 사용되며,
first-class object 개념과 함께, clousre와 같은 디자인패턴을 구현하는데 사용됨.
C언어에 익숙한 개발자의 경우, Python등에서 nested function을 보면 상당히 어색하다.
개인적으로 tuple을 이용한a,b = b,a
로 두 변수의 값을 swap하는 것과 함께
가장 어색했던 게 nested function이었음.
2023.07.15 - [Python] - [Python] Closure
'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 |