Appia의 IT세상

파이썬[Python] 지역 변수(Local Variable), 전역 변수(Global Variable)에 범위 및 함수안에서 전역변수 접근방법 본문

Python/Python 기본

파이썬[Python] 지역 변수(Local Variable), 전역 변수(Global Variable)에 범위 및 함수안에서 전역변수 접근방법

Appia 2020. 5. 19. 07:21
반응형

이번 포스팅은 변수의 영역에 대해서 이야기를 한번 해보고자 합니다. 알시다시피 변수의 종류에는 크게 2가지 형태로 나누어집니다. 하나는 코드 전체 영역에서 사용할 수 있는 전역 변수입니다. 또 다른 하나는 특정 함수 및 클래스 범위 안에서 사용할 수 있는 지역 변수입니다. 

 

그럼 먼저 간단하게 다음을 한번 살펴보겠습니다. 

example)

def print_var():
 
    print(vars)
 
vars = "Welcome Appia"
 
print_var()
cs

result) 

Welcome Appia
cs

먼저 vars라는 변수를 선언하고 이를 출력하는 print_var()라는 함수를 구동했습니다. 위의 결과 vars의 입력된 결과가 출력이 되었습니다. 여기에서 vars는 전역 변수입니다. 파이썬뿐 아니라 다른 언어에서도 기본적으로 전역변수로 선언된 변수를 특정 영역 즉 함수라던지 특정 범위안에서 접근이 가능합니다. 

 

그럼 다음 다음 예시를 한번 살펴보겠습니다. 

example)

def print_var():
 
    vars = "Hello Appia"
 
    print(vars)
 
vars = "Welcome Appia"
 
print_var()
 
print(vars)
cs

result) 

Hello Appia
 
Welcome Appia
cs

변수 var는 전역변수로 "welcome Appia"를 치환하였습니다. 하지만 print_var()함수에서 var 변수에 "Hello Appia"라는 문자열을 치환하였습니다. 이 함수 안에서는 vars는 지역변수로 선언이 되었습니다. 여기에서 하나 확실히 알아둬야 할 점이 있습니다. 그 부분은 전역 변수와 지역 변수가 충돌할 때 우선순위는 지역변수에게 있다는 점입니다. 그리고, 특정 범위 내에서는 전역 변수에 특정 값들을 치환할 수 없습니다. 만약 특정 범위에서 전역변수에 대해서 치환하고 싶다면 특정 방법이 필요합니다. 

 

 

특정 함수 및 특정 범위에서 전역변수에 접근하기 위해서는 특정 방법이 필요합니다. 먼저 그 범위 안에서 다음과 같이 선언해주셔야 합니다. 

 

global 전역변수 

 

이와 같은 형태 선언되어 있는 부분의 지역 변수에서 전역 변수를 접근할 수 있습니다. 그럼 다음 예시를 한번 살펴보겠습니다.  

example) 

def print_var():
 
    global vars
 
    vars = "Hello Appia"
 
    print(vars)
 
vars = "Welcome Appia"
 
print_var()
 
print(vars)
cs

example) 

Hello Appia
 
Hello Appia
cs

위의 함수는 전역변수로 선언된 vars라는 변수를 함수 print_var에서 관련된 값을 바꾸어버립니다. 그 중심에는 바로 global vars라는 부분이 존재합니다. 

 

오늘은 전역변수와 지역변수에 대해서 살펴보면서 전역변수를 특정 지역(함수 안)에서 관련된 값을 업데이트 하는 방법에 대해서 살펴봤습니다. 

 

파이썬은 매우 가볍고 간편하지만, 전역변수에 있어서는 살짝 주의가 필요합니다. 혹시 궁금하신점이나 문의 사항이 있으시면 언제든지 댓글 및 방명록에 글남겨주시길 바랍니다. (여러분의 댓글및 공감이 저의 포스팅의 원동력입니다. 가사합니다. )

반응형
Comments