2. if __name__ == "__main__": 의 의미
페이지 정보
작성자 관리자 댓글 0건 조회 3,948회 작성일 20-07-17 19:56본문
2. if __name__ == "__main__": 의 의미
이번에는 mod1.py 파일을 다음과 같이 변경해 보자.
# mod1.py
def add(a, b):
return a+b
def sub(a, b):
return a-b
print(add(1, 4))
print(sub(4, 2))
add(1, 4)와 sub(4, 2)의 결과를 출력하는 다음 문장을 추가하였다.
print(add(1, 4))
print(sub(4, 2))
위에서 작성한 mod1.py 파일은 다음과 같이 실행할 수 있다.
C:\python_workspace>python mod1.py
5
2
그런데 이 mod1.py 파일의 add와 sub 함수를 사용하기 위해 mod1 모듈을 import할 때는 좀 이상한 문제가 생긴다.
명령 프롬프트 창에서 다음을 따라 해 보자.
C:\Users\jklee> cd C:\python_workspace
C:\python_workspace> python
Type "help", "copyright", "credits" or "license" for more information.
>>> import mod1
5
2
엉뚱하게도 import mod1을 수행하는 순간 mod1.py가 실행이 되어 결괏값을 출력한다. 우리는 단지 mod1.py 파일의 add와 sub 함수만 사용하려고 했는데 말이다.
이러한 문제를 방지하려면 mod1.py 파일을 다음처럼 변경해야 한다.
# mod1.py
def add(a, b):
return a+b
def sub(a, b):
return a-b
if __name__ == "__main__":
print(add(1, 4))
print(sub(4, 2))
if __name__ == "__main__"을 사용하면 C:\python_workspace>python mod1.py처럼 직접 이 파일을 실행했을 때는 __name__ == "__main__"이 참이 되어 if문 다음 문장이 수행된다.
반대로 대화형 인터프리터나 다른 파일에서 이 모듈을 불러서 사용할 때는 __name__ == "__main__"이 거짓이 되어 if문 다음 문장이 수행되지 않는다.
위와 같이 수정한 후 다시 대화형 인터프리터를 열고 실행해 보자.
>>> import mod1
>>>
아무 결괏값도 출력되지 않는 것을 확인할 수 있다.
댓글목록
등록된 댓글이 없습니다.