티스토리 뷰

반응형

지난 시간에 모듈을 작성하고 불러오는 방법에 대해 알아보았다. 

이번 시간에는 << if __name__ == "__main__" >>는 어떤 의미를 갖는 코드 인지 알아보려고 한다. 

지난 시간에 작성한 모듈을 아래와 같이 변경을 해보자. 


1
2
3
4
5
6
7
8
9
# mod1.py 
def add(a, b): 
    return a+b
 
def sub(a, b): 
    return a-b
 
print(add(14))   // 추가
print(sub(42))   // 추가
cs


모듈 파일에 print문을 추가하였다. 그리고 모듈불러오기 했던것과 똑같이 명령프롬프트를 실행하고 mod1.py를 import하는 순간

print문이 실행이 되어 출력이 되어버렸다. 

1
2
3
4
5
6
7
Naui-MacBook-Pro:pythonStudy$ ls
inheritance.py    mod1.py        study.py
Naui-MacBook-Pro:pythonStudy$ python
>>> import mod1 
5
2
>>> 
cs


지금 처럼 해당 모듈에는 print문이 출력이 되어야 겠지만 모듈을 불러쓸때 print문이 안나와 하는 경우는 어떻게 해야할까?

바로 오늘 알아보고자 하는 << if __name__ == "__main__" >> 를 사용하면 된다.

1
2
3
4
5
6
7
8
9
Naui-MacBook-Pro:pythonStudy$ ls
inheritance.py    mod1.py        study.py
Naui-MacBook-Pro:pythonStudy$ python
>>> import mod1 
>>> 
cs

if __name__ == "__main__": 의 의미

if __name__ == "__main__"을 사용하면 C:\현재소스저장된 디렉토리>python mod1.py처럼 직접 이 파일을 실행했을 때는 __name__ == "__main__"이 이 되어 if문 다음 문장이 수행된다. 반대로 대화형 인터프리터나 다른 파일에서 이 모듈을 불러서 사용할 때는 __name__ == "__main__"이 거짓이 되어 if문 다음 문장이 수행되지 않는다.


제 포스팅이 도움이 되셨다면

♡공감↓ 꾸~욱 부탁드려요^^ 

더 나은 포스팅에 큰 힘이 됩니다.



반응형
댓글