[파이썬] 변수의 유효 범위와 이름 공간
Python에서 변수의 유효 범위(scope)는 프로그램의 구조에 따라 정의됩니다. 유효 범위는 변수가 접근 가능한 코드 블록을 정의합니다. 각 변수는 하나 이상의 이름 공간(namespace)에 속합니다.
Python에는 다음과 같은 유효 범위가 있습니다.
- 내부 이름 공간(Inner Namespace): 함수 내부에 정의된 변수는 함수 내부 이름 공간에 속합니다.
- 외부 이름 공간(Outer Namespace): 함수 바깥에 정의된 변수는 외부 이름 공간에 속합니다.
- 빌트인 이름 공간(Built-in 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()
는 빌트인 이름 공간에 속합니다. 함수 내부에서도 빌트인