C급 개발자와 함께하는 파이썬
6.4 모듈의 name속성
모든 모듈은 이름을 가지고 있습니다. 이것은 모듈 내에 포함된 명령을 통해 모듈의 이름을 알수 있습니다. 이 속성은 모듈이 불려지면서 사용되고 있는지 아니면 인터프리터에서 곧바로 실행된 것인가를 구분하는데 편리하게 사용됩니다. 모듈 내부의 코드는 모듈이 첫번째로 불러들여 졌을때 실행하게 되어있습니다. 이러한 속성을 통해 모듈이 외부로부터 실행되어졌을 때와 곧바로 실행되었을 때에 따라 각각 다르게 처리가 가능합니다. 이를 위해 name속성을 사용합니다.
위 프로그램은 다음과 같이 코딩되어있습니다.
만약 직접 실행이 된경우는 “이 프로그램은 자신이 실행한 프로그램 입니다.”를 실행하도록 되어있습니다.
다른 프로그램을 이용하여 실행된 경우에는 “이 프로그램은 외부에서 실행된 프로그램 입니다.”를 실행하도록 되어 있습니다.
첫번째 라인에서 __name__ == “__main__” 인 경우는 직접 실행된 경우를 나타냅니다.
그래서 python3 exam06_004.py를 실행한경우는 “이 프로그램은 자신이 실행한 프로그램 입니다.”를 출력하고 있습니다.
그리고 python3 프로그램 안에서 import exam06_004를 하는 경우는 “이 프로그램은 외부에서 실행된 프로그램 입니다.”를 출력하고 있습니다.
직접실행한 경우와 외부에서 실행한 경우를 명확하게 아는것이 중요합니다.