사용시
터미널에서 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
'AI > 기계학습' 카테고리의 다른 글
머신러닝과 딥러닝의 차이 (0) | 2024.05.20 |
---|---|
회귀 총정리 (0) | 2024.05.13 |
회귀 알고리즘 평가 지표 RSS, MSE, MAE, R^2 (0) | 2024.05.12 |
릿지(Ridge), 라쏘(Lasso), 엘라스틱넷(ElasticNet) 회귀 (0) | 2024.05.11 |
교차 검증 - 과적합 방지 기법 (0) | 2024.05.11 |