PYTHON 프로그래밍

본문 바로가기
사이트 내 전체검색


PYTHON 프로그래밍
PYTHON 프로그래밍

2. if __name__ == "__main__": 의 의미

페이지 정보

작성자 관리자 댓글 0건 조회 2,833회 작성일 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

>>>


아무 결괏값도 출력되지 않는 것을 확인할 수 있다.


댓글목록

등록된 댓글이 없습니다.


개인정보취급방침 서비스이용약관 모바일 버전으로 보기 상단으로

TEL. 063-469-4551 FAX. 063-469-4560 전북 군산시 대학로 558
군산대학교 컴퓨터정보공학과

Copyright © www.leelab.co.kr. All rights reserved.