본문 바로가기
Python

Python - 지역 변수와 전역 변수 그리고 global

by 올엠 2024. 3. 2.
반응형

지역 변수와 전역 변수

파이썬에서 변수는 크게 지역 변수와 전역 변수로 나뉜다.

지역 변수는 함수 안에서만 사용 가능한 변수를 의미한다. 함수 밖에서 호출하면 에러가 발생한다.

def 지역변수():
    a = '지역변수'
    print(a)

지역변수()
print(a)  # 에러 발생

전역 변수는 함수와 상관없이 프로그램 전체에서 사용 가능한 변수를 의미한다. 함수 밖에서 선언하거나, 함수 안에서 global 키워드를 사용하여 선언하면 전역 변수가 된다.

a = '전역변수'

def 지역변수():
    print(a)

지역변수()
print(a)

지역 변수와 전역 변수의 차이점

  • 지역 변수

선언 위치: 함수 내부
사용 범위: 함수 내부
선언 방법: a = 1
전역 변수

  • 전역 변수
선언 위치: 함수 내부,함수 외부
사용 범위: 프로그램 전체
선언 방법: a = 1 또는 global a

지역 변수와 전역 변수의 혼동(global)

지역 변수와 전역 변수의 이름이 같은 경우, 함수 내부에서 a를 호출하면 지역 변수 a가 사용된다. 따라서 전역 변수 a의 값을 변경하려면 global 키워드를 사용하여 전역 변수 a를 사용해야 한다.

a = '전역변수'

def 지역변수():
    global a = '전역 변수 수정하기'
    print(a)

지역변수()
print(a)

지역변수() 함수 내부에서는 지역 변수 a가 사용되고, 함수 외부에서는 전역 변수 a가 사용된다. 따라서 지역변수() 함수 내부에서 a의 값을 변경해도 함수 외부의 전역 변수 a의 값은 변경되지 않는다.

 

이러한 혼동을 방지하기 위해 지역 변수와 전역 변수의 이름을 구분하는 것이 좋다.

반응형