프로그래밍/Python

[Python] local 변수와 global 변수

베린이 2023. 12. 13. 07:07
반응형

이전 글에서 함수에 대해 알아봤습니다. 이번 글에서는 함수에서 사용되는 변수인 로컬 변수와 글로벌 변수에 대해 알아보겠습니다.

 

- local 변수와 global 변수의 차이

한 프로그램에서 여러 개의 함수를 선언할 수 있습니다. 그런데 local 변수는 한 함수에서만 사용이 가능하지만 global 변수는 모든 함수에서 사용가능하다는 차이가 있습니다. 이 두 변수는 선언되는 위치에 따라 local 변수인지 global 변수인지 정해집니다.

만약 변수가 함수 정의 파트 안에 선언되면 local 변수, 함수 밖에서 선언되면 global 변수가 됩니다.

 

우선 먼저 local 변수를 활용하는 예시를 보겠습니다.

#local 변수 활용
#함수 definition
def veriln_print1() :
    a = 5
    print("a의 값은",a,"입니다")

def veriln_print2() :
    a = 10
    print("a의 값은",a,"입니다")

#실제 동작 코드
veriln_print1()
veriln_print2()

>> a의 값은 5 입니다
>> a의 값은 10 입니다

 

a를 각각의 함수에서 선언을 하니 함수마다 출력되는 a의 값이 다른 것을 알 수 있습니다. 다음은 global 함수의 활용입니다.

#global 변수 활용
#함수 definition
def veriln_print1() :
    print("1번 함수에서 a의 값은",a,"입니다")

def veriln_print2() :
    print("2번 함수에서 a의 값은",a,"입니다")

#변수 선언
a = 30

#실제 동작 코드
veriln_print1()
veriln_print2()

>> 1번 함수에서 a의 값은 30 입니다
>> 2번 함수에서 a의 값은 30 입니다

 

a가 함수 바깥에 선언되니 두 함수 모두 a의 값이 30인 것을 알 수 있습니다. 함수 뒤에 선언되든, 함수 앞에 선언되는 결과는 같습니다.

#global 변수 활용
#변수 선언
a = 30

#함수 definition
def veriln_print1() :
    print("1번 함수에서 a의 값은",a,"입니다")

def veriln_print2() :
    print("2번 함수에서 a의 값은",a,"입니다")

#실제 동작 코드
veriln_print1()
veriln_print2()

>> 1번 함수에서 a의 값은 30 입니다
>> 2번 함수에서 a의 값은 30 입니다