일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 파이썬프로그래밍
- 구글애널리틱스
- GA공부
- GA설치
- 신용카드추천
- 구글애널리틱스강의
- 파이썬정규표현식
- 유튜브
- 구글애널리틱스공부
- 책추천
- 구글애널리틱스4
- 파이썬공부
- 파킹통장
- 파이썬함수
- 페이스북광고
- 카페24
- 파이썬문자열
- 국민내일배움카드
- 마케팅
- GA
- 메이크샵
- 파킹통장추천
- 구글애널리틱스가이드
- GA4
- 유튜브광고
- GA가이드
- GA강의
- 파이썬내장함수
- 구글ads
- 파이썬
- Today
- Total
정리왕
파이썬 모듈 2 (if __name__ =="__main__":) 본문
파이썬 모듈 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 파일은 다음과 같이 실행할 수 있다.
그런데 이 mod1.py 파일의 add와 sub함수를 사용하기 위해 mod1 모듈을 import할 때는 좀 이상한 문제가 생긴다. 명령 프롬프트 창에서 다음을 따라 해 보자.
>>> import mod1
>>> 5
5
>>> 2
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:\doit>python mod1.py처럼 직접 이 파일을 실행했을 때는 __name__=="__main__"이 참이 되어 if문 다음 문장이 수행된다. 반대로 대화형 인터프리터나 다른 파일에서 이 모듈을 불러서 사용할 때는 __name__=="__main__"이 거짓이 되어 if문 다음 문장이 수행되지 않는다.
위와 같이 수정한 후 다시 대화형 인터프리터를 열고 실행해 보자.
>>> import mod1
>>>
아무 결과값도 출력되지 않는 것을 확인할 수 있다.
★ __name__변수란?
파이썬의 __name__변수는 파이썬이 내부적으로 사용하는 특별한 변수 이름이다. 만약 C:/doit>python mod1.py처럼 직접 mod1.py파일을 실행할 경우 mod1.py의 __name__변수에는 __main__값이 저장된다. 하지만 파이썬 셸이나 다른 파이썬 모듈에서 mod1을 import할 경우에는 mod1.py의 __name__변수에는 mod1.py의 모듈 이름 값 mod1이 저장된다.
'6.개발 > 파이썬 공부하기' 카테고리의 다른 글
파이썬 모듈 4 (다른 파일에서 모듈 불러오기) (0) | 2020.12.01 |
---|---|
파이썬 모듈 3 (클래스나 변수 등을 포함한 모듈) (0) | 2020.12.01 |
파이썬 모듈 1 (0) | 2020.12.01 |
파이썬 클래스 4 (상속과 변수) (0) | 2020.11.29 |
파이썬 클래스 3 (생성자 Constructor) (0) | 2020.11.29 |