nested function(중첩함수)란?

박준영·2021년 7월 19일

def 로 시작하는 함수 안에 또 다른 하나의 def 로 시작하는 함수를 정의할 수 있는데요, 이때 함수 안에 정의된 또 다른 함수를 중첩 함수 (Nested Function) 이라고 합니다.

중첩 함수 (nested function)는 자신이 속한 원래 함수 안에서만 역할을 하며, 원래 함수의 밖에서는 인식이 안됩니다.

좋은 예시를 가져왔습니다.

def outer(num):

    def inner(n): # nested function
        result1 = n + 1
        return result1
    
    result2 = inner(num)**2
    return result2

print(outer(10))

--------------------------

def outer(num):

    def inner(n):
        result1 = n + 1
        return result1
    
    result2 = inner(num)**2
    return result2

print(inner(10)) # NameError: name 'inner' is not defined

중첩함수는 클로져를 구현하기 위해서 클로져 장점 클로져 내부 함수를 직접 고치지 않고 데코레이터를 통해서 수정을 할 수 있다.

0개의 댓글