티스토리 뷰

Dev/python

__main__.py

hellotheresy 2017. 2. 10. 16:29

package인식을 위한 __init__은 확인했지만 코드보면 아래와 같은 코드가 자주 보인다



if __name__ == "__main__":



뭐하는 코드인지 살펴보기위해 Document를 살펴보면 다음과 같다 

( https://docs.python.org/3/library/__main__.html  )


결국 script로 호출 , 즉 top-level로 호출될때 사용되는 내부 모듈이라 할 수 있다. 

파이썬은 다른 함수와 달리 Main함수가 없기 때문에.. 종종 사용되는 구문인듯 싶다


다음의 코드를 보면 이해에 도움이 된다



file A.py

def func():
    print("function A.py")

print("top-level A.py")

if __name__ == "__main__":
    print("A.py 직접 실행")
else:
    print("A.py가 임포트되어 사용됨")

file B.py

import A

print(""top-level in B.py"")
one.func()

if __name__ == "__main__":
    print("B.py가 직접 실행")
else:
    print("B.py가 임포트되어 사용됨")

>> python A.py top-level in A.py A.py가 직접 실행 >>python B.py top-level in A.py A.py가 임포트되어 사용됨 top-level in B.py function A.py B.py가 직접 실행



즉 직접 실행인지 import되어 사용되는지 검증하는 코드이다 



참고 URL 

 : http://hashcode.co.kr/questions/3/if-__name__-__main__%EC%9D%80-%EC%99%9C%EC%93%B0%EB%82%98%EC%9A%94


'Dev > python' 카테고리의 다른 글

DB browser for SQLite  (0) 2017.01.31
pip upgrade ( win32 module )  (0) 2017.01.25
[Python] Anaconda 소개 및 설치  (0) 2017.01.25
Pycharm install  (0) 2017.01.17
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함