전역(global)
파이썬에서 객체의 이름에 객체를 할당하면 객체의 주소가 할당되어 이름공간에 저장됩니다. 저장된 객체이름이 객체를 참조하는 것으로 이 상태를 연결(binding)되었다고 표현합니다. 기본적으로 바인딩은 모듈단위로 이루어집니다.
파이썬은 다양한 라이브러리(패키지, 모듈)들이 존재합니다. 파이썬 자체가 가지는 내장함수, 속성을 제외하고 모듈의 속성, 함수들은 그 모듈내에서만 작동됩니다. 예를 들어 numpy는 배열을 다루기 위해 특화된 파이썬 패키지입니다. 이 패키지의 array()함수는 배열을 생성하기 위한 함수로서 다음과 같이 그 패키지를 장착한 뒤에 함수가 작동할 영역을 지정해 주어야 합니다.
import numpy as np x=np.array([1,2,3]);x
array([1, 2, 3])
다음과 같이 지정하지 않을 경우 동작하지 않습니다.
-y=array([1,2,3]); y
NameError: name 'array' is not defined
이러한 모듈을 장착할 수 있는 기본 파이썬을 파이썬 코어(core)라고 합니다. 내장함수(built-in function)는 이 파이썬 코어에 포함된 함수를 의미합니다. 다음 코드와 같이 내장 함수 len()
은 특별히 작용영역을 지정하지 않고 사용할 수 있으며 다른 모듈에서 생성된 객체에 대해서도 작동합니다. 즉, 내장함수는 파이썬 코어가 작동하는 모든 범위에서 작동합니다.
위 그림과 같이 파이썬의 각 객체는 모듈 단위로 이루어지며 기본적으로 객체는 모듈 안에서 동작합니다. 이러한 범위를 전역(global)범위라고 합니다. 각 모듈에 포함되어 있는 함수, 메서드, 속성등은 전역범위에서 작동합니다.
len(x)
3
댓글
댓글 쓰기