변수의 사용 범위 알아보기
: 전역 변수(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에 누적
'Python > python' 카테고리의 다른 글
클래스 속성과 정적, 클래스 메서드 사용하기 (0) | 2020.10.19 |
---|---|
클래스 (0) | 2020.10.19 |
람다 표현식 사용하기 (0) | 2020.10.19 |
함수에서 재귀호출 사용하기 (0) | 2020.10.19 |
함수에서 위치 인수와 키워드 인수 사용하기 (0) | 2020.10.16 |