if __name__ == __main__

Nam Eun-Ji·2020년 11월 26일
0

파이썬 코드들을 보면 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__)
  1. 인터프리터에서 직접 실행
python3 file.py
직접 실행됨
__main__
  1. 다른 파일에서 import되어 사용됨
# otherfile.py
import file
file.func()
임포트되어 사용됨
file

즉, if __name__ == "__main__"은 인터프리터에서 직접 실행했을 경우에만 if문 내의 코드를 돌리라는 명령이다.



__name__

interpreter가 실행 전에 만들어 둔 글로벌 변수이다.

profile
한 줄 소개가 자연스러워지는 그날까지

0개의 댓글