EDUCATION/DSS Online 6기

DAY4 - global, local, nested function

Kululu_ 2021. 1. 14. 17:03

 

global( 전역 영역 )

- 전역 영역은 함수 밖의 영역을 의미합니다.

local( 지역 영역 )

- 지역 영역은 함수 안의 영역을 의미합니다.

 

지역 영역에서 선언되는 변수는 '지역 변수', 전역 영역에서 선언되는 변수는 '전역 변수'라고 합니다.

지역 변수는 전역 영역에서는 사용될 수 없습니다.

지역 영역에서 선언된 변수 gv를 전역 영역에서 사용하려 하면 해당 변수가 정의되지 않았다는 에러가 나옵니다.

전역 변수는 지역 영역에서 사용될 수 있습니다.

지역 영역에서 gv라는 변수를 따로 선언하지 않았음에도 전역 변수 gv를 이용해 결과가 출력됩니다.

 

변수명이 같은 전역 변수와 지역 변수가 있을 경우 함수에서는 지역 변수를 사용합니다.

전역 변수 gv에는 python이라는 데이터, 지역 변수 gv에는 hi라는 데이터가 들어있는데 함수 실행 시 지역 변수 gv를 이용해 hi가 출력됩니다.

 

지역 영역에서 전역 변수를 활용할 때, 함수가 실행될 경우 전역 변수의 값이 바뀌게 하려면 global 을 활용할 수 있습니다.

지역 영역에서 gv = "hi"는 새로운 지역 변수를 선언하게 되므로 전역 변수의 값에 영향을 주지 못하는 것을 알 수 있습니다.

 

global을 사용하면 지역 영역에서 전역 변수 gv의 값을 새롭게 할당해줄 수 있습니다.

 

Nested function

- 함수 안의 함수로 지역 영역에서 선언되는 함수라고 할 수 있습니다.

- 지역 영역에서 선언되므로 전역 영역에서 바로 사용할 수 없습니다.

지역 영역에서 선언된 inner 함수는 전역 영역에서 바로 사용할 수 없습니다.