참고 자료 : https://madplay.github.io/post/python-main-function
파이썬에서 __name__ 변수는 내부적으로 사용되는 특별한 변수 이름이다. 그리고 __name__ == '__main__'
의 의미는 메인 함수의 선언, 시작
을 의미한다.
정확한 의미 파악을 위해 직접 코드를 실행하면서 익히려 하였다.
그 결과 dot 파일이 import되어 add 함수가 제대로 작동하였다.
제대로 7이 출력되었다.
import만 했을 뿐인데 dot.py의 코드가 실행되어 결과값이 출력되었따. add함수만 이용하려고 한건데!!
dot 파일에 다음과 같이 __name__ == '__main__'
조건문을 작성하였다. 그리고 나서 banana파일에 dot 파일을 import하여 출력해보았다.
아무것도 출력되지 않았다! 즉, dot 파일의 print 가 실행되지 않았다.
왜 저렇게 된걸까?!? __name__ == '__main__'
이 뭐길래?!?
처음에 말했듯 __name__ 변수는 내부적으로 사용되는 특별한 변수 이름이다. 위의 예제를 통해 __name__ 이라는 변수에 __main__ 이라는 값이 할당된다.
다만, 해결하기에서 보았듯이 import dot
을 통해 모듈을 불러와서 사용하는 경우 __name__
변수에는 모듈 이름(dot)이 저장된다!
결과적으로 ìf __name__ == '__main__'
와 같이 조건문을 사용하여 터미널에서와 같이 직접 호출되어 사용될 때는 그 자체로 기능을 수행하고, 동시에 다른 모듈에서 필요한 함수 등을 제공할 수 있다!