파이썬의 범위(Scope) LEGB

yun·2024년 7월 17일
post-thumbnail

💗LEGB란?

  • 파이썬에서 변수에 값을 바인딩하거나 변수의 값을 참조하는 경우 LEGB 규칙을 따른다.
  • 파이썬에서 사용되는 이름(식별자)들은 이름공간(namespace)에 저장되어 있다.
  • 아래와 같은 순서로 이름을 찾아나가며, LEGB Rule이라고 부른다.
변수의미
LLocal scope 지역 범위 (현재 작업 중인 범위)
EEnclosed scope 지역 범위 한 단계 위의 범위
GGlobal scpe 최상단에 위치한 범위
BBuilt-in scope 모든 것을 담고 있는 범위(정의하지 않고 사용할 수 있는 모든 것)


출처-pyhton simplified

  • L -> E -> G -> B 순서로 찾아나간다.

🔍예시

a = 0
b = 1

def enclosed():
    a = 10
    c = 3

    def local(c):
        print(a, b, c)

    local(300)
    print(a, b, c)

enclosed()
print(a, b)

때문에 위와 같이 코드를 작성했을 때는

10 1 300
10 1 3
0 1

다음과 같이 출력 된다.

0개의 댓글