파이썬 __name__ == __main__ 의미

범모 ( bbeom dev) ·2023년 1월 19일
0

깃에서 파이썬 코드를 보면 if__name__ == '__main__':이 자주 등장한다.
해당 코드는 왜 자주 등장하는지, 필수적으로 써야하는지 의미를 알아보고 싶어서 공부했다.

test.py와 main.py 파일을 만들었다.
test.py

#test py
print('test 모듈 불러오기')
print('test.py __name__ :', __name__)

main.py

#main py
import test

print('main.py __name__ :', __name__)

main.py 코드를 실행했더니

출력값이 다음과 같이 나왔다.
test.py는 main.py에서 import되었고 main.py는 인터프리터로 직접 실행한 코드이다.
test.py의 __name은 test이고 main.py의 __name은 __main__이다.

여기서 알 수 있는 점은 메인 인터프리터에서 실행되었을 경우는 __name이 __main인 것을 알 수 있다. 그리고 모듈 코드는 import될 때 자동으로 실행된다.

그렇다면 모듈이 import될 때 자동으로 실행되지 않게 하려면 어떻게 해야 될까?

test.py 코드에 if문을 추가했다.

if __name__ == '__main__':
    print('test 모듈 불러오기')
    print('test.py __name__ :', __name__)

그리고 main.py를 실행해보았다.

test.py의 코드가 자동으로 실행되지 않는다. 왜냐하면 test.py는 import 되었기 때문에 __name이 __main이 아니기 때문에 test.py 내부 코드는 자동으로 실행되지 않는다.

이런 이유로 프로그램의 원치 않는 동작을 방지하기 위해서 if __name == '__main': 코드를 사용하는 것이다.

profile
AI로 사회에 긍정적인 영향을 줄 수 있는 개발자가 되기 위해 성장하고 있습니다.

0개의 댓글