파이썬 코드들을 보면 if __name__ == "__main__"
이라는 코드가 파일 끝에 자주 보인다.
그래서 이게 무엇인가 찾아보니.
__name__이라는 변수의 값이 __main__이라면 아래의 코드를 실행하라.
이중에서 __name__은 현재 모듈의 이름을 담고있는 내장 변수이다.
즉, 이 변수는 직접 실행된 모듈의 경우 __main__이라는 값을 가지게 되며, 직접 실행되지 않은 import된 모듈은 모듈의 이름(파일명)을 가지게 된다.
해당 모듈이 임포트된 경우가 아니라 인터프리터에서 직접 실행된 경우에만, if문 이하의 코드를 돌리라는 명령이다. 파이썬에서 모듈을 실행할 수 있는 방법은 직접 실행하거나 임포트해서 실행하거나 2가지 방법이라는 것을 기억하자.
if __name__ == "__main__":
# 코드
# 코드
# file.py
def func():
print("hello")
if __name__ == "__main__":
print("직접 실행됨")
print(__name__)
else:
print("임포트되어 사용됨")
print(__name__)
python3 file.py
직접 실행됨
__main__
# otherfile.py
import file
file.func()
임포트되어 사용됨
file
즉, if __name__ == "__main__"
은 인터프리터에서 직접 실행했을 경우에만 if문 내의 코드를 돌리라는 명령이다.
__name__
interpreter가 실행 전에 만들어 둔 글로벌 변수이다.