Python 08 함수 LEGB 규칙

김민호·2021년 9월 4일
0

Python

목록 보기
9/16
post-thumbnail

LEGB 규칙

개념

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

바인딩(binding) : 구체적인 값을 할당하는 과정

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
개발자로서의 삶은 https://velog.io/@maxminos 에서 기록하고 있습니다 😀

0개의 댓글