본문 바로가기

언어/Python

[ 파이썬 / Python ] 전역변수와 지역변수 사용하기

반응형

파이썬에서 전역변수(global variable)와 지역변수(local variable)의 차이는 다음과 같습니다:

1. 정의와 스코프

  • 전역변수 (Global Variable)
    • 정의: 함수 외부에서 선언된 변수입니다.
    • 스코프: 프로그램 전체에서 접근할 수 있습니다. 즉, 모든 함수 및 블록 내에서 접근이 가능합니다.
  • 지역변수 (Local Variable)
    • 정의: 함수 내부에서 선언된 변수입니다.
    • 스코프: 선언된 함수 내부에서만 접근할 수 있습니다. 함수가 끝나면 변수는 사라집니다.

2. 선언 위치

  • 전역변수는 함수 외부에서 선언됩니다.
  • 지역변수는 함수 내부에서 선언됩니다.

3. 변수 접근 및 수정

  • 전역변수는 함수 내에서도 접근할 수 있지만, 수정하려면 global 키워드를 사용해야 합니다.
  • 지역변수는 함수 내에서만 접근하고 수정할 수 있습니다.

4. 예제 코드

# 전역변수 선언
x = 10

def my_function():
    # 지역변수 선언
    y = 5
    print("지역변수 y:", y)

    # 전역변수 x에 접근
    print("전역변수 x:", x)

    # 전역변수 x를 수정하려면 global 키워드 사용
    global x
    x = 20
    print("수정된 전역변수 x:", x)

my_function()
print("함수 외부에서의 전역변수 x:", x)
# print(y)  # 에러 발생: y는 지역변수이므로 함수 외부에서 접근 불가

위 코드의 출력은 다음과 같습니다:

지역변수 y: 5
전역변수 x: 10
수정된 전역변수 x: 20
함수 외부에서의 전역변수 x: 20

파이썬에서는 하나의 파일(모듈)에서 정의된 전역변수를 다른 파일(모듈)에서 사용할 수 있습니다. 이를 위해서는 변수가 정의된 모듈을 임포트(import)해야 합니다.

5. 다른 파일에 정의도니 전역변수를 공유하는 방법

아래 예제를 통해 두 개의 파일을 사용하여 전역변수를 공유하는 방법을 설명하겠습니다.

파일 1: config.py

이 파일에서는 전역변수를 정의합니다.

# config.py
global_variable = 42
파일 2: main.py

이 파일에서는 config.py 파일에서 정의한 전역변수를 사용합니다.

# main.py
import config

def print_global_variable():
    print("전역변수의 값:", config.global_variable)

def modify_global_variable(new_value):
    config.global_variable = new_value

print_global_variable()  # 출력: 전역변수의 값: 42
modify_global_variable(100)
print_global_variable()  # 출력: 전역변수의 값: 100

설명

  1. 임포트: main.py 파일에서 import config를 사용하여 config.py 모듈을 임포트합니다.
  2. 변수 접근: config.global_variable을 통해 config.py에서 정의된 전역변수에 접근합니다.
  3. 변수 수정: modify_global_variable 함수에서 config.global_variable을 수정합니다.

이렇게 하면 config.py에 정의된 전역변수를 main.py에서 사용하고 수정할 수 있습니다. 이 방법을 사용하면 여러 파일에서 전역변수를 공유하여 코드의 모듈화를 할 수 있습니다.

주의 사항

  1. 임포트 순환 문제: 모듈이 서로를 임포트하려고 할 때 순환 임포트 문제가 발생할 수 있습니다. 이를 피하기 위해 구조를 잘 설계해야 합니다.
  2. 변수의 명시적 접근: 전역변수를 사용할 때는 모듈 이름을 명시적으로 사용하여 코드의 가독성을 높여야 합니다.
  3. 전역변수 남용 주의: 전역변수를 과도하게 사용하면 코드의 이해와 유지보수가 어려워질 수 있습니다. 가능하면 함수의 인자나 반환값을 사용하여 값을 전달하는 것이 좋습니다.

이와 같은 방법으로 다른 파일에 정의된 전역변수를 사용할 수 있습니다.

요약

  • 전역변수는 프로그램 전체에서 접근 가능하며, 함수 외부에서 선언됩니다.
  • 지역변수는 함수 내부에서만 유효하며, 함수 내부에서 선언됩니다.
  • 함수 내에서 전역변수를 수정하려면 global 키워드를 사용해야 합니다.

이와 같은 개념을 이해하면, 변수의 스코프를 보다 명확히 관리할 수 있어 코드의 가독성과 유지보수성을 높일 수 있습니다.

반응형