일시 : 2018.01.17
내용 : 파이썬 if __name__ == '__main__' 의 의미 동주와 스타벅스에서~
//
if __name__ == '__main__' 의미
__name__ 은 현재 모듈의 이름을 담고 있는 내장 변수다.
해당 프로그램을 직접 실행했을 경우에는 참이 되어 main() 함수를 실행하고, 다른 프로그램에서 import하여 사용할 경우에는 간접 실행이 되어 거짓이 되어 main()함수가 실행되지 않는다.
다른 모듈을 import하는 경우는 main안의 코드를 실행하기 보다, 함수나 클래스등만을 사용하는 경우가 대부분. if __name__ == '__main__' 을 사용하여 코드의 수정없이 바로 import하여 사용 가능.
메인 프로그램으로 실행하기 위해 설정.
다른 모듈에 의해 사용된다면 그 모듈 이름이 새겨짐.
예를 들어 __name__ 이 있는 파일이 aaa.py라면 __name__ 변수에는 __main__ 이라는 값이 들어감.
하지만 aaa.py를 외부에서 import하여 실행하면 __name__ 에는 파일이름 aaa가 들어감.
=> 요약하자면 해당 모듈이 직접 실행되는 경우에는 __name__ 은 __main__ 으로 설정되어 if문 아래를 실행하지만, 외부에서 실행된 경우에는 __name__ 이 __main__이 아니기 때문에 if문 아래를 실행하지 않는다.
## aaa.py
print(__name__)
if __name__ == "__main__":
print("나는 __main__ 이다.")
else:
print("나는 __main__ 이 아니다.")
print(__name__)
## name2.py
import aaa
aaa.py에서 실행한 결과와 name2.py에서 실행한 결과는 다음과 같다.
'2017 멀티캠퍼스 > Python' 카테고리의 다른 글
[Python] #15 파이썬 쓰레드(Thread) 개념과 예제 (2) | 2018.01.17 |
---|---|
[Python] 날씨 API 받아오기 (0) | 2018.01.16 |
[Raspberry Pi/Python] 현재 시간 FND에 출력하기 (0) | 2018.01.16 |
[Python] #14 파이썬 객체 지향 : 생성자와 상속 (0) | 2018.01.14 |
[Python] #13 파이썬 객체 지향 : 클래스 (0) | 2018.01.14 |