개발자 블로그

[윤성우의 열혈 파이썬 중급편] - 22. __name__ & __main__ 본문

파이썬/윤성우의 열혈 파이썬 중급편

[윤성우의 열혈 파이썬 중급편] - 22. __name__ & __main__

hayongwoon 2022. 5. 18. 16:22

개발을 하다보면 import를 사용할 일이 정말 많다. 해당 파일에서 다른 파일에 있는 객체를 가져와 사용하고 싶을 때, 물론 사용할 객체를 한 파일에 있으면 import를 사용할 일은 없다. 하지만 서비스와 비즈니스 모듈을 나누고 또 테스트를 사용하고 등등 여러가지 이유로 우리는 여러 파일을 나누고 불러와 사용하는 일이 빈번하다. 그럴 때 의도하지 않는 것도 실행이 될 수도 있다. 해당 파일에 필요한 것만 가져와 사용하고 싶은데... 그럴 때 __name__ 이란 변수의 성질을 잘 알고 사용한다면 우리는 이러한 불편함을 해결할 수 있다.

__name__ 란?

__name__은 파이썬 파일을 실행하면 자동으로 생성이 되는 변수이다. 그렇다면 이 변수에는 뭐가 참조되고 있을까... 바로 '__main__' 이라는 문자이다. 

  • 실행이 시작되는 스크립트 파일의 __name__에는 문자열 '__main__'을 채운다.
  • import 되는 스크립트 파일의 __name__에는 파일 이름을 문자열로 채운다.

if __name__ == '__main__':

이에 따라 두 가지 목적으로 사용될 수 있다.

직접 실행할 내용이거나, 아니면 다른 스크립트 파일에서 사용하도록 만든 내용이거나 

 

if__name__ == '__main__': 을 사용하여 의도치 않게 다른 스크립트에 불러와서 사용하지 않아야 할 부분을 제한할 수 있다. 저 구문은 해당 파일을 직접 실행하는 거냐?? 라고 묻는 것이고 그렇다면 아래 작성한 내용을 실행해라 이런 뜻이다. 따라서 불러와서 사용하는 경우에는 __name__이라는 변수에 불른 파일의 이름이 담겨있기 때문에 해당 조건문 아래 내용은 실행이 되지 않는다.

 

 

윤성우의 열혈 파이썬 중급편을 마치며...

끝으로 파이썬 언어에 대해 더 깊은 이해도를 얻을 수 있었다. 생각보다 이해가 안가는 부분들이 많았고, 너무 잘 이해가 가는 부분들도 있었다. 이해가 잘 안갈 때면 몇번이고 반복해서 시간을 나누어 읽기도 하고, 콘솔에서 작성하며 실습도 했다. 돌이켜보니 정말 뿌듯하다. 내가 책을 통해 공부하는 이유는 '가시적'으로 기록물이 남아서이다. 내가 공부한 것들 걸어온 것들이 눈에 보이기에 가끔 힘들 때 뒤를 볼 때 아.. 내가 이만큼이나 공부했네? 라며 공허함을 채울 수 있기 때문인다.

 그리고 이 책은 파이썬을 공부하는 사람들에게 정말 좋은 책이라고 생각한다. 너무 쉽게 설명이 되어있고... 실습도 할 수 있게끔 도와주기ㄷ 때문이다. 나도 누군가에게 파이썬 언어를 공부할 때 추천을 해준다면 이 책을 가장 먼저 말해야겠다.

 

우선, 지금 이 순간은 꾸준히 공부해준 나에게 정말 수고했고, 잘했다고 말하고 싶다!