[Python] 전역변수, 지역변수
- Python/기초
- 2020. 4. 9.
반응형
반응형
variable scope(변수 범위)에 대해 알아보겠습니다.
전역변수와 지역변수
함수를 정의하면 그 안에 변수가 있습니다.
그 변수같은 경우 자신이 속한 코드 블록이 종료되면 소멸됩니다. 이런 특징을 갖는 변수를 지역변수(local variable)이라고 합니다. 반대로 프로그램 종료 전까지 유지되는 변수를 전역변수(global variable)라고 합니다.
num1 = 10
num2 = 40
def add(num1,num2):
print(num1,num2)
add(30,50)
print(num1,num2)
먼저 num1 과 num2 를 각각 10과 40으로 정의했는데 함수 add 안에 num1,num2 를 변수로 선언하고 사용해보겠습니다. 즉, num1= 10, num2 = 40 은 전역변수, add()에서 num1, num2 는 지역변수가 되겠습니다. 보시는것처럼 add(30,50)의 결과로 30 50 이 나왔지만 함수를 벗어나자마자 다시 num1,num2 는 10 40 이 되었습니다. 함수안에서는 지역변수가 실행되지만 함수코드블록이 끝나자마자 다시 전역변수로 돌아서는 것을 볼 수 있습니다.
전역변수는 함수안으로 들어가지 않는 걸 알 수 있습니다.
함수 안에서 전역변수 사용하기
함수 안에서 전역변수를 쓸수 있게 하려면 어떻게 해야할까요?
num_count = 0
def count():
num_count = num_count+1
print(num_count)
count()
전역변수인 num_count를 함수안에서 실행하려고 했지만 지역변수로 설정하고 함수가 실행되지 않아서 에러가 났습니다.
이럴 경우, global 을 이용해 해결할 수 있습니다.
num_count = 0
def count():
global num_count
num_count = num_count+1
print(num_count)
count()
count()
count()
num_count
전역변수 자체가 변경되는 것을 볼 수 있습니다. 하지만, 전역변수를 자꾸 끌어다 쓰게 되면 나중에 헷갈려져서 힘들어질수도 있습니다. 꼭 필요할때만 쓰시기 바랍니다.
'Python > 기초' 카테고리의 다른 글
[Python] 간단 용어 정리 (0) | 2020.04.14 |
---|---|
[Python] Lambda(람다) 함수 (0) | 2020.04.12 |
[Python] 함수 (0) | 2020.04.07 |
[Python] for 반복문 (0) | 2020.04.03 |
[Python] while 반복문 쓰기 (0) | 2020.04.02 |