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

파이썬 전역, 지역, 비지역 변수 이해하기

파이썬 전역, 지역, 비지역 변수 이해하기

파이썬에서 전역, 지역, 비지역 변수 사용법을 마스터하고, 깔끔하고 유지보수하기 쉬운 코드를 위해 각각 언제 적용할지 아세요.

영상: 파이썬 지역 및 전역 변수

전역 변수(Global Variables)

파이썬에서 함수 밖(모듈 레벨)에 선언된 변수는 전역 변수입니다. 모듈 어디서든 읽을 수 있지만, 함수 내부에서 수정하려면 global 키워드로 선언해야 합니다.

예제: 전역 변수 생성과 읽기

x = "global"
def foo():
    print("x inside:", x)
foo()
print("x outside:", x)

출력

x inside: global
x outside: global

global 선언 없이 x 재할당 시도 시 UnboundLocalError 발생:

x = "global"
def foo():
    x = x * 2
    print(x)
foo()

출력

UnboundLocalError: local variable 'x' referenced before assignment

함수 내부에서 전역 변수 수정하려면 global 키워드 사용:

x = "global"
def foo():
    global x
    x = x * 2
    print(x)
foo()

출력

globalglobal

지역 변수(Local Variables)

지역 변수는 함수 본문 내부에서 정의되며 해당 함수 실행 동안만 존재. 함수 밖에서 접근 불가.

예제: 스코프 밖에서 지역 변수 접근 시도

def foo():
    y = "local"
foo()
print(y)

출력

NameError: name 'y' is not defined

지역 변수 올바르게 정의하고 사용:

def foo():
    y = "local"
    print(y)
foo()

출력

local

전역 및 지역 변수 결합

같은 모듈에서 두 스코프 함께 쓰는 게 일반적. global 키워드로 변수가 모듈 레벨 인스턴스 참조함을 보장.

x = "global "
def foo():
    global x
    y = "local"
    x = x * 2
    print(x)
    print(y)
foo()

출력

global global
local

지역 변수가 전역 변수와 같은 이름일 때 서로 독립적:

x = 5
def foo():
    x = 10
    print("local x:", x)
foo()
print("global x:", x)

출력

local x: 10
global x: 5

비지역 변수(Nonlocal Variables)

중첩 함수는 nonlocal 키워드로 외부(전역 아님) 스코프 변수에 접근하고 수정 가능.

def outer():
    x = "local"
    def inner():
        nonlocal x
        x = "nonlocal"
        print("inner:", x)
    inner()
    print("outer:", x)
outer()

출력

inner: nonlocal
outer: nonlocal

참고: 내부 함수에서 비지역 변수 업데이트 시 외부 함수 스코프의 변수도 업데이트됨.

python

  1. C 변수, 상수, 리터럴: 완전 가이드
  2. 파이썬 키워드와 식별자: 예약어와 명명 규칙 마스터하기
  3. 파이썬 문장, 들여쓰기, 주석: 명확한 가이드
  4. 파이썬 변수, 상수, 리터럴 – 종합 가이드
  5. 파이썬 타입 변환 & 캐스팅 마스터하기: 종합 가이드
  6. 파이썬 입출력과 모듈 임포트 마스터하기: 실전 가이드
  7. 파이썬 global 키워드 마스터하기: 사용법과 타이밍
  8. Python 숫자, 형 변환, 수학 마스터하기
  9. Python 디렉터리 및 파일 관리 마스터하기
  10. Python 에러와 내장 예외 마스터하기