Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬(Python)에서 전역 변수란? 함수 안팎에서 전역 변수를 사용하는 방법

프로그래밍에서 전역(global)지역(local)이라는 용어는 변수가 스크립트나 프로그램 내에서 도달할 수 있는 범위, 즉 스코프(scope)를 나타냅니다. 전역 변수는 프로그램 어디에서든 접근할 수 있는 반면, 지역 변수는 자신이 선언된 함수나 코드 블록 내부에서만 접근할 수 있으며 외부에서는 참조할 수 없습니다.

전역 변수란 무엇인가?

전역 변수는 함수 외부, 즉 모듈의 최상위 레벨에서 정의하고 선언하는 변수입니다. 이렇게 선언된 변수는 별도의 제한 없이 프로그램 전체 어디에서든 읽고 사용할 수 있습니다.

지역 변수와 이름 충돌(섀도잉)

만약 함수 내부에 전역 변수와 같은 이름의 변수가 정의되어 있다면, 해당 함수 안에서는 전역 값이 아닌 함수 내부에서 지정한 값만 사용됩니다. 이처럼 지역 변수가 전역 변수를 덮어 가리는 현상을 '섀도잉(shadowing)'이라고 부릅니다.

예제: 함수 안팎에서 전역 변수 접근하기

아래 예제는 전역 변수 k가 함수 foo()의 내부와 외부 양쪽에서 어떻게 접근되는지 보여줍니다.

# 이 함수는 전역 변수 k를 사용합니다.
k = "I like green tea"

def foo():
    print(k)   # 함수 내부에서 전역 변수 접근

foo()
print(k)       # 함수 외부에서 전역 변수 접근

실행 결과

I like green tea
I like green tea

실행 결과를 보면, 함수 내부에서 호출했을 때와 외부에서 호출했을 때 모두 동일한 전역 변수의 값이 출력되는 것을 확인할 수 있습니다.

참고: 함수 안에서 전역 변수 값을 수정하려면?

함수 내부에서 전역 변수를 단순히 읽기만 할 때는 별도의 선언이 필요하지 않지만, 그 값을 변경하려면 global 키워드를 사용해야 합니다.

count = 0

def increment():
    global count   # 전역 변수임을 명시
    count += 1

increment()
print(count)       # 실행 결과: 1

이처럼 파이썬에서는 변수의 스코프를 이해하는 것이 매우 중요합니다. 전역 변수는 편리하지만 남용하면 코드의 흐름을 추적하기 어려워질 수 있으므로, 가능하면 함수에 인자를 전달하고 반환값을 활용하는 방식을 권장합니다.