__main__ namespace
python script.py 와 같이 직접 쉘에서 실행하는 경우에는 파이썬 인터프리터가 해당 script.py 모듈을 script 라는 namespace 가 아닌__main__ 이라는 namespace 로 간주하여 다루게 된다.
따라서 처음에 궁금했던 아래 문장은 '만일 이 파일이 인터프리터에 의해서 실행되는 경우라면' 이라는 의미를 갖는다.
if __name__ == "__main__"
즉 본인이 구현한 코드가 다른 파이썬 코드에 의해서 모듈로 import 될 경우도 있을 수 있고, 파이썬 인터프리터에 의해서 직접 실행될 경우도 있을 수 있는데, 위 코드는 인터프리터에 의해서 직접 실행될 경우에만 실행하도록 하고 싶은 코드 블럭이 있는 경우에 사용한다.
아래 예제 코드와 결과를 보면 이해하기 쉽다.(참고: http://ibiblio.org/g2swap/byteofpython/read/module-name.html)
<code>
#!/usr/bin/python # Filename: using_name.py if __name__ == '__main__': print 'This program is being run by itself' else: print 'I am being imported from another module'
<output>
$ python using_name.py This program is being run by itself $ python >>> import using_name I am being imported from another module >>>
출처: http://pinocc.tistory.com/175 [땅뚱 창고]
'컴퓨터이야기' 카테고리의 다른 글
파이썬 opencv 설치하기 (0) | 2017.04.03 |
---|---|
공개키 암호화 (0) | 2017.03.31 |
pandas.DataFrame.tail (0) | 2017.03.10 |
Ipython.display.Image class (0) | 2017.03.10 |
No Free Lunch Theorems (0) | 2017.03.09 |