모듈의 실행 ( __name__ == '__main__' )
Programming/Python 2013. 5. 1. 15:24 |파이썬은 지금 모듈이 가장 먼저 수행되는 최상위 모듈인지, 아니면 다른 모듈에 의해 임포트 되는 모듈인지를 구별하기 위하여 __name__ 이라는 특별한 내장 이름을 가지고 있다.
__name__ 은 일반적으로는 자시의 모듈 이름을 가진다.
ex) fie: test.py
print __name__
이런 파일이 있다고 한다면...
이 파일을 대화식 인터프리터에서 수행하면, 자기 모듈 이름을 출력한다. 즉, test를 출력한다.
그러나 test.py 가 프로그램 모드로 수행되면 __name__ 은 '__main__' 이란 이름을 가진다.
가장 먼저 파이썬 인터프리터에 의해 사용되는 모듈이 __main__ 이란 이름을 가진다는 것을 이용하면, 특정 코드를 선택적으로 실행하게 만들 수 있다.
def test():
print "hahaha"
if __name__ == "__main__":
test()
위 코드에서 if 문 안의 test() 는 가장 먼저 수행되는 최상위 모듈일 때만 수행되고,
다른 모듈에 의해 import될 때는 수행되지 않는다.
따라서, 모든 파이썬 모듈은 독립적으로 수행될 수 있으며, 또한 다른 모듈에 의해 호출될 수도 있다. 이것은 파이썬 모듈을 독립적으로 만들어 주는 좋은 특징 중에 하나이다.
보통 파이썬 모듈 파일을 만들 때에는 마지막 부분에 위와 같은 방식으로 테스트 코드를 추가하여 충분히 테스트하며, 테스트가 끝나면 코드의 수정 없이 다른 모듈에서 바로 임포트해서 이용한다.
'Programming > Python' 카테고리의 다른 글
class (0) | 2013.05.01 |
---|---|
문자열 이름으로 속성 값 참조 (0) | 2013.05.01 |
Module (0) | 2013.05.01 |
열혈강의 파이썬 10장 연습문제 풀이 (0) | 2013.04.30 |
함수 객체의 속성 (0) | 2013.04.28 |