티스토리 뷰
파이썬 모듈을 공부하던 중
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되어 사용되는지를
구분할 수 있다고 볼 수 있다.
- 참고
'Programming Language > Python basic' 카테고리의 다른 글
[Python] 문자열 처리 프로그램 (문자열을 저장하였다가 출력하는 프로그램) (0) | 2021.04.01 |
---|---|
[Python] 학생들의 성적을 처리하는 프로그램 (0) | 2021.04.01 |
[Python] 무명 함수(람다식) (0) | 2021.04.01 |
[Python] 사용자로부터 2개의 정수를 받아 크기 순으로 반환하는 함수 작성 (0) | 2021.03.31 |
[Python] 6자리의 패스워드 생성기 프로그램 (과제 : 적어도 하나의 숫자를 가지도록 소스 변경) (0) | 2021.03.31 |
- Thanks for comming.
- 오늘은
- 명이 방문했어요
- 어제는
- 명이 방문했어요