[파이썬] 변수의 스코프 (scope)

Python에서 변수의 스코프는 프로그램의 어느 부분에서 변수가 사용될 수 있는지를 정의합니다. 변수의 스코프는 변수가 선언된 위치에 따라 달라집니다. 변수의 스코프는 변수가 선언된 위치에 따라 글로벌, 지역, 중첩 스코프로 나뉩니다.

글로벌 스코프 (Global Scope)

글로벌 스코프는 프로그램 전체 영역에서 변수를 사용할 수 있는 스코프를 말합니다. 글로벌 스코프는 프로그램의 어느 곳에서나 변수를 사용할 수 있습니다. 글로벌 스코프에서 선언된 변수는 함수 내부에서도 사용할 수 있습니다.

예시

# 글로벌 변수
name = "John"

def say_hello():
    # 함수 내부에서 글로벌 변수 사용
    print("Hello, " + name)

say_hello() # Hello, John

지역 스코프 (Local Scope)

지역 스코프는 함수 내부에서만 변수를 사용할 수 있는 스코프를 말합니다. 함수 내부에서 선언된 변수는 함수 밖에서는 사용할 수 없습니다.

예시

def say_hello():
    # 지역 변수
    name = "John"
    print("Hello, " + name)

say_hello() # Hello, John

# 함수 밖에서는 사용할 수 없음
print(name) # NameError: name 'name' is not defined

중첩 스코프 (Nested Scope)

중첩 스코프는 함수 안에 함수가 중첩되어 있을 때 변수를 사용할 수 있는 스코프를 말합니다. 함수 내부에서 선언된 변수는 그 함수 내부의 다른 함수에서도 사용할 수 있습니다.

예시

def say_hello():
    # 지역 변수
    name = "John"

    def say_name():
        # 중첩 스코프
        print("My name is " + name)

    say_name()

say_hello() # My name is John

Python에서 변수의 스코프는 글로벌, 지역, 중첩 스코프로 나뉩니다. 변수의 스코프는 변수가 선언된 위치에 따라 달라집니다. 변수의 스코프를 잘 이해하고 사용하면 프로그램의 코드를 더욱 깔끔하게 작성할 수 있습니다.