산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> python

파이썬 global 키워드 마스터하기: 사용법과 타이밍

파이썬 global 키워드 마스터하기: 사용법과 타이밍

이 가이드는 파이썬 global 키워드, 규칙, 실전 활용 사례, 모듈 간 전역 변수 관리 모범 사례를 설명합니다.


global 키워드란?

파이썬에서 global 키워드는 함수 내 변수가 새 지역 변수가 아니라 모듈 레벨 변수를 참조함을 선언합니다. 함수가 자신의 스코프 밖 변수를 읽거나 수정해야 할 때 필수적입니다.


global 사용 규칙


global 실전 활용

아래 예제들은 함정과 올바른 접근을 모두 보여줍니다.

예제 1: 함수 내부에서 전역 변수 접근

c = 1 # 전역 변수
def add():
    print(c)
add()

출력:

1

여기서 c는 add() 내부 할당 없으므로 읽기 성공.

예제 2: global 없이 전역 변수 수정 시도

c = 1 # 전역 변수
def add():
    c = c + 2 # c 수정 시도
    print(c)
add()

출력:

UnboundLocalError: local variable 'c' referenced before assignment

에러 발생 이유: 파이썬은 c를 할당 전 참조되는 새 지역 변수로 간주.

예제 3: global로 전역 변수 수정

c = 0 # 전역 변수
def add():
    global c
    c = c + 2
    print("Inside add():", c)
add()
print("In main:", c)

출력:

Inside add(): 2
In main: 2

global c 선언으로 함수가 모듈 레벨 c 업데이트, 변경사항이 함수 밖에서도 보임.


파이썬 모듈 간 전역 변수 공유

대규모 앱에서는 설정을 전용 모듈(config.py 등)에 중앙화하는 게 일반적. 다른 모듈에서 임포트해 수정 가능, 프로그램 전체에서 일관된 상태 유지.

예제 4: 모듈 간 전역 변수

config.py 생성:

a = 0
b = "empty"

update.py로 전역 수정:

import config
config.a = 10
config.b = "alphabet"

main.py로 변경 확인:

import config
import update
print(config.a)
print(config.b)

출력:

10
alphabet

이 패턴은 공유 상태를 한 곳에 두면서 다른 모듈에서 제어된 업데이트 허용.


중첩 함수에서 global 사용

중첩 함수가 외부 함수의 지역 변수 수정 필요 시, global 키워드로 진정한 전역 변수 생성 가능.

예제 5: 중첩 함수 내 전역 변수

def foo():
    x = 20
    def bar():
        global x
        x = 25
        print("Before calling bar:", x)
        print("Calling bar now")
        bar()
        print("After calling bar:", x)
foo()
print("x in main:", x)

출력:

Before calling bar: 20
Calling bar now
After calling bar: 20
x in main: 25

foo() 내부에서 x는 지역 변수 유지. 중첩 bar()가 x를 전역 선언해 할당이 모듈 레벨 x에 영향, foo() 종료 후에도 보임.


global 편리하지만, 일반적으로 전역 상태 변경보다 새 값 반환하는 함수 설계가 더 낫습니다. 이는 코드 명확성과 테스트 용이성 증진. 자세한 언어 규칙은 공식 파이썬 문서 global statement 참조.

python

  1. 파이썬 데이터 타입 마스터하기: 실전 가이드
  2. 파이썬 연산자 마스터하기: 종합 가이드
  3. 파이썬 pass 문 마스터하기: 실전 가이드
  4. 파이썬 함수 인자 마스터하기: 위치, 키워드, 기본 매개변수
  5. 파이썬 전역, 지역, 비지역 변수 이해하기
  6. Python 딕셔너리 마스터하기: 생성, 조작, 고급 기법
  7. Python 이터레이터: 작동 원리와 직접 만들기
  8. Python 클로저 이해하기: 중첩 함수가 변수 캡처하는 방법
  9. Python datetime 마스터하기: 날짜, 시간, 타임존 실전 가이드
  10. 파이썬(Python) 개요: 고수준, 가독성, 인터랙티브, 객체지향