파이썬 코드를 작성하고 타인의 작성한 코드를 보다보면 if __name__ == "__main__":
코드를 심심찮게 볼 수 있습니다
이건 무엇일까요?
if __name__ == "__main__":
는 현재 스크립트가 직접 실행될 때, 다른 파일에서의 호출로 실행되는 상황이 아닐 때 이하의 코드 블록을 실행합니다.
예를 들어 위의 구문이 작성된 스크립트 파일의 이름이 my_script.py
일 때 bash 창에 다음과 같이 실행해야 이하의 코드 블록을 실행합니다
python3 my_script.py
__name__
은 파이썬에서 모듈의 이름을 나타내는 내장 변수입니다
즉, my_script.py가 __name__
이 되게 됩니다
"__main__"
은 파이썬 인터프리터가 현재 실행 중인 스크립트를 나타내는 문자열입니다
즉, bash창에서 명령어 python3 my_script.py
를 이용해 직접 실행하였다면, "__main__"
는 my_script.py가 되게됩니다
그래서 직접 bash창 명령어를 이용해 스크립트를 실행했다면 if __name__ == "__main__":
이하 블록의 내용들이 실행되게 됩니다
# my_script.py
def some_function():
print("Hello from some_function!")
if __name__ == "__main__":
print("Hello my_script!")
some_function()
이 스크립트를 다음 명령어를 이용해 실행하면
python3 my_script.py
"Hello my_script!"가 출력된 뒤 some_function()
도 실행되어 "Hello from some_function!" 이 출력됩니다
하지만 만일 다른 스크립트에서 이 모듈을 가져와서(import) 사용한다면
# another_script.py
import my_script
my_script.some_function()
pythton3 another_script.py
if __name__ == "__main__":
아래 부분은 실행되지 않게 되므로 "Hello from some_function!"만 출력됩니다!
'[Python]' 카테고리의 다른 글
[Python] append()와 extend() 차이 (0) | 2024.04.02 |
---|---|
[Python] with문 (0) | 2024.04.02 |
[Python] 파이썬 미로 생성 알고리즘 (0) | 2023.11.04 |
[Python] 딕셔너리 최댓값, 최솟값 구하기 / 최댓값을 가지는 key 구하기 (0) | 2023.10.05 |
[Python] 파이썬 정규표현식(regular expression) (0) | 2023.07.04 |