본문 바로가기

컴퓨터이야기

파이썬 if __name__ =="__main__"

__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