티스토리 뷰

반응형

 

파이썬 모듈을 공부하던 중

if 문의 조건에

__name__ == "__main__"

이라는 처음 보는 것을 발견했다.

 

다른 사람의 코드를 볼 때

언젠가 한 번 

본 적이 있는 코드이다.

 

찾아봐도 잘 이해가 가지 않았는데,

이번에 제대로 알고 가자!

하는 마음에서 포스팅한다.

 

 

 

 

1. __name__이란?

모듈의 이름을 담고 있는

내장 변수이다.

python.py 라는 파일이 있다면

__name__는 python이 되는 것이다.

 

 

 

 

 

2. __main__이란?

최상위 코드가 실행되는 진입점,

프로그램 시작점을

엔트리포인트(Entry Point)라고 한다.

 

__name__ 은 표준 입력,

스크립트 또는 대화식 프롬프트에서 읽힐 때

'__main__' 으로 설정된다.

 

__name__의 값을 검사해서

메인 영역에서 실행 중인지

확인이 가능하다는 것이다.

 

 

 

 

 

3. 실습

 

 

3.1 wow.py 파일을 생성하고

result() 함수를 선언, 호출

 

1
2
3
4
def result():
    print("wow : ", __name__)
 
result()
cs

 

 

  - 3.1 결과  

 

 

 

 

 

3.2 this_is.py 파일을 생성하고

result() 함수를 선언, 호출

 

1
2
3
4
def result():
    print("this_is : ", __name__)
 
result()
cs

 

 

  - 3.2 결과  

 

 

 

 

 

3.3 fun.py 파일을 생성하고

wow, this_is 모듈을 import 후

result() 함수를 선언, 호출

 

 

1
2
3
4
5
6
7
import wow
import this_is
 
def result():
    print("fun : ", __name__)
 
result()
cs

 

 

  - 3.3 결과  

 

 

 

 

 

  - 설명  

결론적으로 __name__ 변수는

메인 영역일 때 실행(직접 실행)의 경우,

__main__ 값을 담고,

import된 모듈인 경우에는

모듈의 이름을 갖는다는 것을 알게 되었다.

 

그러므로

if __name__ == "__main__"을 

사용하는 것은

현재 파일이 엔트리 포인트인지,

모듈로 import되어 사용되는지를

구분할 수 있다고 볼 수 있다.

 

 

 

 

  - 참고  

hyoje420.tistory.com/45

digital-play.tistory.com/49

반응형
댓글
반응형
Recent Post.
Recent Reply.
Thanks for comming.
오늘은
명이 방문했어요
어제는
명이 방문했어요