[파이썬] 변수의 유효 범위와 이름 공간

Python에서 변수의 유효 범위(scope)는 프로그램의 구조에 따라 정의됩니다. 유효 범위는 변수가 접근 가능한 코드 블록을 정의합니다. 각 변수는 하나 이상의 이름 공간(namespace)에 속합니다.

Python에는 다음과 같은 유효 범위가 있습니다.

내부 이름 공간

함수 내부에 정의된 변수는 함수 내부 이름 공간에 속합니다. 함수 내부 이름 공간은 함수가 호출될 때 생성되고, 함수가 종료될 때 소멸됩니다.

다음 예제는 함수 내부 이름 공간의 사용 예를 보여줍니다.

def my_func():
    x = 10
    print("Value inside function:",x)

x = 20
my_func()
print("Value outside function:",x)

위의 코드는 다음과 같이 출력됩니다.

Value inside function: 10
Value outside function: 20

함수 내부에 정의된 변수 x는 함수 내부 이름 공간에 속합니다. 함수 바깥에 정의된 변수 x는 외부 이름 공간에 속합니다.

외부 이름 공간

함수 바깥에 정의된 변수는 외부 이름 공간에 속합니다. 외부 이름 공간은 프로그램이 실행될 때 생성되고, 프로그램이 종료될 때 소멸됩니다.

다음 예제는 외부 이름 공간의 사용 예를 보여줍니다.

x = 10

def my_func():
    print("Value inside function:",x)

my_func()
print("Value outside function:",x)

위의 코드는 다음과 같이 출력됩니다.

Value inside function: 10
Value outside function: 10

함수 바깥에 정의된 변수 x는 외부 이름 공간에 속합니다. 함수 내부에서도 외부 이름 공간에 속한 변수 x를 사용할 수 있습니다.

빌트인 이름 공간

Python 내장 함수는 빌트인 이름 공간에 속합니다. 빌트인 이름 공간은 프로그램이 실행될 때 생성되고, 프로그램이 종료될 때 소멸됩니다.

다음 예제는 빌트인 이름 공간의 사용 예를 보여줍니다.

import math

x = 10

def my_func():
    print("Square root of",x,"is",math.sqrt(x))

my_func()

위의 코드는 다음과 같이 출력됩니다.

Square root of 10 is 3.1622776601683795

Python 내장 함수 math.sqrt()는 빌트인 이름 공간에 속합니다. 함수 내부에서도 빌트인