if __name__ == "__main__": 의미

Cha Hwa Young·2023년 5월 29일
0


디버깅의 중요성.. 코딩테스트 공부할 때도, 프로젝트 할 때도 매우 유용한 것이 디버깅인데, 그 중요성을 간과하고 있었다!

파이썬 디버깅 할 때 종종 쓰이는 다음 코드에 대해 알아보자.

if __name__ == "__main__":
    // a 
    // b

__name__이라는 변수의 값이 __main__이라면 a, b라는 코드를 실행하라는 의미일 것이다.

하나하나 파헤쳐보자!

__name__

우선, __name__은 현재 모듈의 이름을 담고 있는 내장 변수이다.
이 변수는 모듈이 직접 실행되었는지, 아니면 직접 실행되지 않고 import 되었는지 판단할 때 사용한다.
모듈이 직접 실행 ➡️ 문자열 "__main__""이 할당
모듈 import ➡️ 해당 모듈의 이름(파일명)이 할당

📍 test.py 모듈 직접 실행해보기

# test.py
def func():
    print("hello")

if __name__ == "__main__":
    print("직접 실행")
    print(__name__)
else:
    print("import 했음")
    print(__name__)
    
func()

📍 test.py 모듈 import 해보기

import test

장점

  • 모듈로 사용될 때는 코드가 실행되지 않기에, 다른 모듈에서 해당 모듈 import할 때 발생하는 부작용 방지 가능
  • 모듈 개발 시, '테스트 코드'를 추가하고 싶을 때 활용 가능 ➡️ 디버깅할 때 쓰임

단점

코드를 직접 실행할 때와 모듈로 사용될 때 다르게 작동하는 경우가 있다면 이를 고려하여 모듈을 개발해야 한다.

참고
if name == “main”은 왜 필요할까?
28. if name == "main":

profile
기회를 잡는 사람이 되도록!

0개의 댓글