본문 바로가기
AI월드/⚙️AI BOOTCAMP_Section 3

if __name__ == “__main__”은 왜 필요할까?_Day46

by khalidpark 2021. 3. 11.

지금까지 파이썬은 구글 colab에서 실행 또는 VScode에서 파이썬파일을 만들고 실행버튼을 눌러 그 동작을 확인했다.

이번부터는 터미널에서 파이썬을 실행, 자연스럽게 해당 조건문에 대한 의구심이 생겨 정리하고자 한다


if __name__ == “__main__”

모듈을 실행할 수 있는 방법은

1)직접 실행하거나

2)임포트하거나.

 

예를들어 second.py 라는 파일안에 아래와 같이 저장해놓고

def second():

  for i in range(1,51):
    if i%3==0 and i%5==0:
      print(i)

if __name__ == "__main__":
  second()

인터프린터에서

1) python 명령시

=> python 실행

 

2) second.py (또는 second) 명령시

=> 오류

 

3) python second.py 명령시

=>작동

 

다시 second.py 을 아래와 같이 수정한 다음

def second():

  for i in range(1,51):
    if i%3==0 and i%5==0:
      print(i)

인터프린터에서

1) second.py (또는 second) 명령시

=> 오류

 

3) python second.py 명령시

=> 입력은 되지만 실행되지 않음

 

왜???


따라서 처음에 궁금했던 해당 코드는 '만일 이 파일이 인터프리터에 의해서 실행되는 경우라면' 이라는 의미

(위 코드는 인터프리터에 의해서 직접 실행될 경우에만 실행하도록 하고 싶은 코드 블럭이 있는 경우에 사용)

 

(__name__ = interpreter가 실행 전에 만들어 둔 글로벌 변수)

# Filename: using_name.py

if __name__ == '__main__':
    print ('This program is being run by itself')
else:
    print ('I am being imported from another module')
$ python using_name.py
This program is being run by itself

$ python
>>> import using_name
I am being imported from another module
>>>

출처 : medium.com/@chullino/if-name-main-%EC%9D%80-%EC%99%9C-%ED%95%84%EC%9A%94%ED%95%A0%EA%B9%8C-bc48cba7f720

 

if __name__ == “__main__”은 왜 필요할까?

.

medium.com

출처 : pinocc.tistory.com/175

 

[Python] if __name__ == "__main__": 의미

참고 : http://stackoverflow.com/questions/419163/what-does-if-name-main-do         http://bytebaker.com/2008/07/30/python-namespaces/ 파이썬 프로그래밍을 보다보면 아래와 같은 문장을 만나곤 한..

pinocc.tistory.com

 

 

 

이미지 출처 : i.ytimg.com/vi/sugvnHA7ElY/maxresdefault.jpg

 

728x90

댓글