본문 바로가기

Programming/Python

[PYTHON] nonlocal variable 이해하기 (+예제)🌱

www.pythontutorial.net

nonlocal variable 

  • outer function 안이면서 inner function 밖의 영역의 변수 (local도 global도 아닌 nonlocal)
  • python에서는 외부 영역의 변수에 대해 읽기는 가능하나 쓰기는 제한적 
  • 이때 nonlocal 예약어를 사용하면 inner function에서 nonlocal variable 수정 가능

 

# nonlocal 사용 예시
def outer():
    temp = 10
    
    def inner():
        nonlocal temp
        temp += 10 
        print(temp)
        
    inner()
    print(temp) 

outer()

# 20
# 20

 
 

✔ 예제) 프로그래머스 모음 사전

def solution(name):
    temp = ['A', 'E', 'I', 'O', 'U']
    count = -1
    answer = 0
    
    def recursion(s, temp, target):
    	# 재귀함수 내에서 호출 횟수를 구하기위해 nonlocal 예약어 사용
        nonlocal count
        nonlocal answer
        count += 1

        if s == target:
            answer = count
            return
        
        if len(s) == len(temp):
            return
        
        for i in range(len(temp)):
            recursion(s + temp[i], temp, target)
        
    recursion('', temp, name)
    return answer

# print(solution('EIO'))

 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr