본문으로 바로가기

클로저 사용하기

category Python/python 2020. 10. 19. 17:24

변수의 사용 범위 알아보기

 : 전역 변수(global variable)

   - 함수를 포함하여 스크립트 전체에서 접근할 수 있는 변수

 

 : 전역 범위(global scope)

   - 전역 변수에 접근할 수 있는 범위

 

 

 : 지역 변수(local variable)

   - 변수를 만든 함수 안에서만 접근할 수 있음

   - 함수 바깥에서는 접근할 수 없음

 

 : 지역 범위(local scope)

   - 지역 변수에 접근할 수 있는 범위

 

 

 

함수 안에서 전역 변수 변경하기

 

 : 함수 안에서 전역 변수의 값을 변경하려면 global 키워드를 사용해야 함

global 전역변수

 

 : 만약 전역 변수가 없을 때 함수 안에서 global을 사용하면 해당 변수는 전역 변수가 됨

 

 

함수 안에서 함수 만들기

def 함수이름1():
	코드
    def 함수이름2():
    	코드

 

지역 변수의 범위

 

지역 변수 변경하기

 

 : 현재 함수 바깥쪽에 있는 지역 변수의 값을 변경하려면 nonlocal 키워드를 사용해야 함

nonlocal 지역변수

 

 : nonlocal이 변수를 찾는 순서

   - 가까운 함수부터 지역 변수를 찾고, 해당 지역 변수가 없으면 계속 바깥쪽으로 나가서 찾음

 

global로 지역 변수 사용하기

 : global 키워드를 사용하면 무조건 전역 변수를 사용하게 됨

 

 

클로저 사용하기

 : 클로저(closure) - 함수를 둘러싼 환경을 계속 유지하다가, 함수를 호출할 때 다시 꺼내서 사용하는 함수

 : 클로저를 사용하면 프로그램의 흐름을 변수에 저장할 수 있음

 : 즉, 클로저는 지역 변수와 코드를 묶어서 사용하고 싶을 때 활용험

 : 또한, 클로저에 속한 지역 변수는 바깥에서 직접 접글할 수 없으므로 데이터를 숨기고 싶을 때 활용함

 

 

lambda로 클로저 만들기

 : 보통 클로저는 람다 표현식과 함께 사용하는 경우가 많아 둘을 혼동하기 쉬움

 : 람다는 이름이 없는 익명 함수

 : 클로저는 함수를 둘러싼 환경을 유지했다가 나중에 다시 사용하는 함수

 

 

클로저의 지역 변수 변경하기

: nonlocal 키워드를 사용하여 a * x + b의 결과를 함수 calc의 지역변수 total에 누적

반응형