목차
  1. 즉!!

사용시

__name__ 이 __main__이면 sayhi_if_main() 함수 실행 / sayhi_()는 기본적으로 실
__name__이 __main__이라면 sayhi의 sayhi_if_main()실행 / 기본적으로 sayhi 모듈의 sayhi_if_main()과, sayhi_()함수 실행

 

터미널에서 sayhi.py를 실행시키면,

sayhi파일을 만들었을 때 자동 생성된 __name__은 __main__이므로 sayhi_if_main()과 sayhi_() 둘 다 실행된다.

 

 

sayhi를 import할 때, if문에 들어가지 않은 sayhi_()메소드는 바로 실행되고, 

saybye.py에서 __name__이 __main__일 때 sayhi의 sayhi_if_main함수를 실행시킨다.

나머지는 그냥.. 참고

 

 

결국, 만약 if문을 안 쓰면 sayhi모듈을 import해오고 내가 원하는 함수를 실행시키려 할 때,

import해온 즉시 바로 if __name__ == "__main__"문 밖의 코드는 실행됨.

따라서 if문을 넣어주면, sayhi에서 실행될 건 거기서만, saybye에서 실행될 건 여기서만.. 이렇게 쓸 수 있음.

참고로 saybye.py의 if __name__=="__main__"문 안에서,

print(__name__) 시 __main__ 출력,

print(sayhi.__name__)시 sayhi 출력됨 --> 따라서 saybye를 실행했을 때 sayhi의 if문은 실행되지 않는 것.

 

 

즉!!

a.py에서 쓰여진 if __name__ == "__main__": 문은,

이게 a.py 파일이 아니면,

다른 파일에서는 아무리 a를 import하였더라도 실행되지 않음!

 

만약 a를 import했어도 a의 메소드만 사용할 수 있고, if __name__ == "__main__" 문은 실행되지 않음.

 

 

 

 

참고 : 프로그래머 김플 스튜디오 youtube