LEGB 규칙

Error Coder·2023년 5월 21일
0

LEGB 규칙

개념

파이썬이 변수에 값을 바인딩하거나 변수의 값을 참조하기 위해 사용되는 우선순위

  • 바인딩 : 구체적인 값을 할당하는 과정

LEGB 순서

local 먼저 찾고 ↓
1. Local : 함수 안
2. Enclosed function locals : 내부 함수에서 자신의 외부 함수의 범위(중첩함수 일때만)
3. Global : 함수 바깥 즉, 모듈 범위
4. Built-in : open, range와 같은 파이썬 내장 함수들을 의미

이해 예시

변수 참조 1) Local

a = 10

def child_func():
    a = 20
    return a

print(child_func())
# 20

child_func 함수 안이 Local 영역이고 여기서 가장 먼저 변수 찾음

변수 참조 2) Enclosed function locals

def parent_func():
    a = 10
    def child_func():
        return a

    return child_func()

print(parent_func())
# 10

첫번째 Local 영역에 참조할 수 있는 a가 없음
두번째인 Enclosed function locals에서 a = 10 발견

변수 참조 3) Global

a = 30

def parent_func():
    def child_func():
        return a

    return child_func()

print(parent_func())
# 30

첫번째 Local 영역과 번째인 Enclosed function locals 영역에 모두 a값이 없기 때문에 세번째 영역인 Global을 확인하고 a = 30출력

profile
개발자 지망생

0개의 댓글