반응형
if __name__ == "__main__":
//코드
//코드
.
해당 모듈이 임포트된 경우가 아니라 인터프리터에서 직접 실행된 경우에만, if문 이하의 코드를 돌리라는 명령입니다. 왜그럴까요?
.
모듈을 실행할 수 있는 방법은 직접 실행하거나 임포트하거나.
.
예를 들어, excuteThisModule.py가 다음이 전부라고 해보지요.
//excuteThisModule.pydef func():
print("function working")
if __name__ == "__main__":
print("직접 실행")
print(__name__)
else:
print("임포트되어 사용됨")
print(__name__)
이 모듈을 실행할 수 있는 방법은 두 가지 입니다.
1️⃣ 인터프리터에서 직접 실행하거나.
python3 executeThisMoudle.py
2️⃣ 다른 모듈에 임포트해서 실행하거나.
//현재 파일의 이름을 executor.py라고 해보죠.import executeThisMoudle.py
executeThisMoudle.func()
1️⃣처럼 인터프리터에서 직접 실행하면, __name__ 변수에 “__main__”이 담겨서 프린트됩니다.
직접실행
__main__
반면, 2️⃣처럼 모듈에서 임포트해서 실행하면, __name__변수에 “executeThisModule”이 담겨서 프린트됩니다.
임포트되어 사용됨
executeThisModule
즉, __name__ == __main__은 인터프리터에서 직접 실행했을 경우에만 if문 내의 코드를 돌리라는 명령이 됩니다.
.
__name__이 무엇인데요?
interpreter가 실행 전에 만들어 둔 글로벌 변수입니다.
반응형
'개발자 > Python' 카테고리의 다른 글
파이썬 join 함수 (문자열 관련) (0) | 2022.02.20 |
---|---|
[Colab] Numpy 입문 (0) | 2020.07.11 |
파이썬 개발환경 Colab 정리 (0) | 2020.07.08 |
파이썬 자료형 (0) | 2020.03.10 |
파이썬 딕셔너리 (0) | 2020.03.06 |